{"id":12722,"date":"2020-05-27T00:16:00","date_gmt":"2020-05-26T15:16:00","guid":{"rendered":"http:\/\/takuminasuno.com\/?p=12722"},"modified":"2020-05-28T19:11:13","modified_gmt":"2020-05-28T10:11:13","slug":"20200527_cloud-firestore_ja","status":"publish","type":"post","link":"https:\/\/takuminasuno.com\/ja\/20200527_cloud-firestore_ja","title":{"rendered":"Firebase\u30672\u500b\u76ee\u306eWeb\u30a2\u30d7\u30ea\u958b\u767a\u3001Cloud Firestore\u30d9\u30fc\u30b9\u3067\u672c\u683c\u7684\u306b\u958b\u767a\u6311\u6226\u3059\u308b\u3068\u304d\u306e\u52d8\u6240\u306b\u3064\u3044\u3066"},"content":{"rendered":"<p>&#21069;&#22238;&#12399;<a href=\"http:\/\/takuminasuno.com\/ja\/20191120_firebase_ja\" target=\"_blank\" rel=\"noopener noreferrer\">&#12302;&#12304;Web&#12450;&#12503;&#12522;&#20316;&#25104;&#12305;Firebase&#12434;&#20351;&#12387;&#12390;&#12522;&#12450;&#12523;&#12479;&#12452;&#12512;&#12391;&#12487;&#12540;&#12479;&#12434;&#21487;&#35222;&#21270;&#12377;&#12427;&#35201;&#28857;&#12304;&#26368;&#30701;&#12523;&#12540;&#12488;&#12305;&#12303;<\/a>&#12392;&#12356;&#12358;&#35352;&#20107;&#12391;Firebase&#12434;&#20351;&#12387;&#12383;Web&#12450;&#12503;&#12522;&#12398;&#20316;&#12426;&#26041;&#12434;&#12374;&#12387;&#12392;&#26360;&#12356;&#12390;&#12415;&#12414;&#12375;&#12383;&#12364;&#12289;&#21218;&#12356;&#12395;&#20055;&#12387;&#12390;2&#20491;&#30446;&#12398;Web&#12450;&#12503;&#12522;&#12434;&#38283;&#30330;&#12375;&#12424;&#12358;&#12392;&#12377;&#12427;&#12392;&#12289;1&#20491;&#30446;&#12392;&#12399;&#23569;&#12375;&#36949;&#12387;&#12383;&#27969;&#12428;&#12434;&#12367;&#12414;&#12394;&#12356;&#12392;&#12356;&#12369;&#12394;&#12356;&#22580;&#21512;&#12364;&#12354;&#12427;&#12371;&#12392;&#12395;&#27671;&#20184;&#12365;&#12414;&#12375;&#12383;&#12290;<p>&#12414;&#12383;&#12289;2&#20491;&#30446;&#12392;&#12356;&#12358;&#12392;1&#20491;&#30446;&#12391;&#12399;&#20351;&#12431;&#12394;&#12363;&#12387;&#12383;&#27231;&#33021;&#12395;&#25163;&#12434;&#20986;&#12381;&#12358;&#12392;&#12375;&#12390;&#12381;&#12371;&#12391;&#12418;&#21029;&#12398;&#12456;&#12521;&#12540;&#12364;&#12539;&#12539;&#12539;&#12392;&#12356;&#12358;&#12371;&#12392;&#12399;&#24448;&#12293;&#12395;&#12375;&#12390;&#12354;&#12427;&#12431;&#12369;&#12391;&#12289;&#20170;&#22238;&#12399;&#12487;&#12540;&#12479;&#12505;&#12540;&#12473;&#12395;&#12399;Realtime Database&#12391;&#12399;&#12394;&#12367;Cloud Firestore&#12434;&#36984;&#12403;&#12289;Cloud Functions&#12398;&#35328;&#35486;&#12399;JavaScript&#12391;&#12399;&#12394;&#12367;TypeScript&#12434;&#36984;&#12403;&#12289;&#12414;&#12383;&#27604;&#36611;&#30340;&#38263;&#26399;&#30340;&#12394;&#38283;&#30330;&#12434;&#35211;&#36796;&#12435;&#12391;&#26412;&#30058;&#29872;&#22659;&#12392;&#38283;&#30330;&#29872;&#22659;&#12434;&#20998;&#12369;&#12390;&#20316;&#12427;&#12371;&#12392;&#12395;&#12375;&#12383;&#12383;&#12417;&#12289;&#20633;&#24536;&#37682;&#12364;&#12390;&#12425;&#20316;&#26989;&#12398;&#27969;&#12428;&#12392;&#27880;&#24847;&#28857;&#12434;&#12513;&#12514;&#12377;&#12427;&#12371;&#12392;&#12395;&#12375;&#12414;&#12375;&#12383;&#12290;<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12733\" src=\"http:\/\/takuminasuno.com\/wp-content\/uploads\/2020\/05\/cloud-firestore.png\" alt=\"\" width=\"1764\" height=\"1125\"><\/p><p>&nbsp;<\/p><p>&#12381;&#12428;&#12391;&#12399;&#26412;&#38988;&#12395;&#20837;&#12426;&#12414;&#12377;&#12290;<\/p><div id=\"ez-toc-container\" class=\"ez-toc-v2_0_68_1 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title \" >\u76ee\u6b21<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/takuminasuno.com\/ja\/20200527_cloud-firestore_ja\/#1%E6%9C%80%E5%88%9D%E3%81%AB%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E6%95%B4%E7%90%86\" title=\"1.&#26368;&#21021;&#12395;&#12501;&#12457;&#12523;&#12480;&#25972;&#29702;\">1.&#26368;&#21021;&#12395;&#12501;&#12457;&#12523;&#12480;&#25972;&#29702;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/takuminasuno.com\/ja\/20200527_cloud-firestore_ja\/#2%E5%88%9D%E5%9B%9E%E3%81%AB%E5%80%A3%E3%81%A3%E3%81%A6%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4%E7%B7%A8\" title=\"2.&#21021;&#22238;&#12395;&#20515;&#12387;&#12390;&#12487;&#12503;&#12525;&#12452;&#32232;\">2.&#21021;&#22238;&#12395;&#20515;&#12387;&#12390;&#12487;&#12503;&#12525;&#12452;&#32232;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/takuminasuno.com\/ja\/20200527_cloud-firestore_ja\/#3ESLint%E3%81%AE%E6%89%8B%E5%8B%95%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB\" title=\"3.ESLint&#12398;&#25163;&#21205;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;\">3.ESLint&#12398;&#25163;&#21205;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/takuminasuno.com\/ja\/20200527_cloud-firestore_ja\/#4%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E3%81%AE%E6%A7%8B%E7%AF%89\" title=\"4.&#38283;&#30330;&#29872;&#22659;&#12398;&#27083;&#31689;\">4.&#38283;&#30330;&#29872;&#22659;&#12398;&#27083;&#31689;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/takuminasuno.com\/ja\/20200527_cloud-firestore_ja\/#5Cloud_Firestore%E3%81%AB%E3%82%88%E3%82%8B%E3%83%87%E3%83%BC%E3%82%BF%E5%87%A6%E7%90%86%E5%AE%9F%E8%A3%85\" title=\"5.Cloud Firestore&#12395;&#12424;&#12427;&#12487;&#12540;&#12479;&#20966;&#29702;&#23455;&#35013;\">5.Cloud Firestore&#12395;&#12424;&#12427;&#12487;&#12540;&#12479;&#20966;&#29702;&#23455;&#35013;<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/takuminasuno.com\/ja\/20200527_cloud-firestore_ja\/#Create%EF%BC%88%E6%96%B0%E8%A6%8F%E4%BD%9C%E6%88%90%EF%BC%89\" title=\"Create&#65288;&#26032;&#35215;&#20316;&#25104;&#65289;\">Create&#65288;&#26032;&#35215;&#20316;&#25104;&#65289;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/takuminasuno.com\/ja\/20200527_cloud-firestore_ja\/#Read%EF%BC%88%E5%8F%82%E7%85%A7%EF%BC%89\" title=\"Read&#65288;&#21442;&#29031;&#65289;\">Read&#65288;&#21442;&#29031;&#65289;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/takuminasuno.com\/ja\/20200527_cloud-firestore_ja\/#Update%EF%BC%88%E6%9B%B4%E6%96%B0%EF%BC%89\" title=\"Update&#65288;&#26356;&#26032;&#65289;\">Update&#65288;&#26356;&#26032;&#65289;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/takuminasuno.com\/ja\/20200527_cloud-firestore_ja\/#Delete%EF%BC%88%E5%89%8A%E9%99%A4%EF%BC%89\" title=\"Delete&#65288;&#21066;&#38500;&#65289;\">Delete&#65288;&#21066;&#38500;&#65289;<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/takuminasuno.com\/ja\/20200527_cloud-firestore_ja\/#%E3%81%BE%E3%81%A8%E3%82%81\" title=\"&#12414;&#12392;&#12417;\">&#12414;&#12392;&#12417;<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"1%E6%9C%80%E5%88%9D%E3%81%AB%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E6%95%B4%E7%90%86\"><\/span>1.&#26368;&#21021;&#12395;&#12501;&#12457;&#12523;&#12480;&#25972;&#29702;<span class=\"ez-toc-section-end\"><\/span><\/h3><p>&#21069;&#22238;&#12392;&#21516;&#27096;&#12395;&#12414;&#12378;&#12399;&#26032;&#35215;&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#12398;&#20316;&#25104;&#12434;&#12539;&#12539;&#12539;&#12392;&#12394;&#12426;&#12381;&#12358;&#12391;&#12377;&#12364;&#12289;&#12371;&#12371;&#12391;&#36367;&#12415;&#12392;&#12393;&#12414;&#12387;&#12390;&#12289;&#12414;&#12378;&#12399;&#12525;&#12540;&#12459;&#12523;&#12395;&#12354;&#12427;&#12507;&#12473;&#12486;&#12451;&#12531;&#12464;&#29992;&#12398;Firebase&#12501;&#12457;&#12523;&#12480;&#12434;&#30906;&#35469;&#12375;&#12390;&#12415;&#12414;&#12377;&#12290;<\/p><p>&#21021;&#12417;&#12390;&#12450;&#12503;&#12522;&#12434;&#20316;&#12387;&#12383;&#12392;&#12365;&#12395;&#65288;<del>&#31169;&#12398;&#12424;&#12358;&#12395;<\/del>&#65289;&#29305;&#12395;&#28145;&#12367;&#32771;&#12360;&#12390;&#12356;&#12394;&#12369;&#12428;&#12400;&#12289;Firebase&#12501;&#12457;&#12523;&#12480;&#65288;&#65309;&#12302;firebase init&#12303;&#12467;&#12510;&#12531;&#12489;&#12434;&#23455;&#34892;&#12375;&#12383;&#12501;&#12457;&#12523;&#12480;&#65289;&#12399;&#22266;&#26377;&#12450;&#12503;&#12522;&#29992;&#12398;&#12497;&#12473;&#12392;&#12356;&#12358;&#12424;&#12426;&#12399;Firebase&#20849;&#36890;&#12398;&#12497;&#12473;&#12395;&#12394;&#12387;&#12390;&#12356;&#12427;&#12363;&#12418;&#12375;&#12428;&#12414;&#12379;&#12435;&#12290;&#12381;&#12398;&#22580;&#21512;&#12289;&#35079;&#25968;&#12398;&#12450;&#12503;&#12522;&#12434;&#20006;&#34892;&#12375;&#12390;&#31649;&#29702;&#12377;&#12427;&#12371;&#12392;&#12364;&#38627;&#12375;&#12356;&#12383;&#12417;&#12289;&#12501;&#12457;&#12523;&#12480;&#27083;&#36896;&#12434;&#23569;&#12375;&#26360;&#12365;&#25563;&#12360;&#12414;&#12377;&#12290;<\/p><table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<th>before<\/th>\n<td style=\"vertical-align: top;\">C:\\USERS\\{USERNAME}&#9495;Firebase\n<p style=\"padding-left: 40px;\">&#9495;1&#20491;&#30446;&#12398;&#12450;&#12503;&#12522;&#12501;&#12449;&#12452;&#12523;&#32676;<\/p>\n<\/td>\n<\/tr>\n<tr>\n<th>after<\/th>\n<td style=\"vertical-align: top;\">C:\\USERS\\{USERNAME}&#9495;Firebase\n<p style=\"padding-left: 40px;\">&#9495;{1st_app_name}<\/p>\n<p style=\"padding-left: 80px;\">&#9495;1&#20491;&#30446;&#12398;&#12450;&#12503;&#12522;&#12501;&#12449;&#12452;&#12523;&#32676;<\/p>\n<p style=\"padding-left: 40px;\">&#9495;{2nd_app_name}<\/p>\n<p style=\"padding-left: 80px;\">&#9495;2&#20491;&#30446;&#12398;&#12450;&#12503;&#12522;&#12501;&#12449;&#12452;&#12523;&#32676;<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table><p>&nbsp;<\/p><h3><span class=\"ez-toc-section\" id=\"2%E5%88%9D%E5%9B%9E%E3%81%AB%E5%80%A3%E3%81%A3%E3%81%A6%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4%E7%B7%A8\"><\/span>2.&#21021;&#22238;&#12395;&#20515;&#12387;&#12390;&#12487;&#12503;&#12525;&#12452;&#32232;<span class=\"ez-toc-section-end\"><\/span><\/h3><p>&#12501;&#12457;&#12523;&#12480;&#12398;&#25972;&#29702;&#12434;&#12375;&#12383;&#24460;&#12399;&#12289;1&#22238;&#30446;&#12392;&#21516;&#12376;&#20316;&#26989;&#12395;&#12539;&#12539;&#12539;&#12392;&#35328;&#12356;&#12383;&#12356;&#12392;&#12371;&#12429;&#12391;&#12377;&#12364;&#12289;&#20170;&#22238;&#12399;Cloud Firestore&#12392;Storage&#12434;&#21033;&#29992;&#12377;&#12427;&#12398;&#12391;&#12289;&#12450;&#12503;&#12522;&#36861;&#21152;&#26178;&#12395;&#12456;&#12521;&#12540;&#12364;&#36215;&#12365;&#12394;&#12356;&#12424;&#12358;&#12395;&#12289;&#21069;&#22238;&#12395;&#12399;&#12394;&#12356;&#20316;&#26989;&#9312;&#65374;&#9313;&#12434;&#20808;&#12395;&#23455;&#34892;&#12375;&#12414;&#12377;&#12290;<\/p><p>&#20316;&#26989;&#9312;&#65306;&#24038;&#12479;&#12502;&#12398;&#12302;Database&#12303;&#12434;&#25276;&#12375;&#12390;Cloud Firestore&#12398;&#12506;&#12540;&#12472;&#12434;&#38283;&#12365;&#12289;&#12302;&#12487;&#12540;&#12479;&#12505;&#12540;&#12473;&#12398;&#20316;&#25104;&#12303;&#12508;&#12479;&#12531;&#12434;&#25276;&#12375;&#12390;&#20316;&#26989;&#12395;&#20837;&#12426;&#12414;&#12377;&#12290;&#12487;&#12540;&#12479;&#12505;&#12540;&#12473;&#12398;&#20316;&#25104;&#12399;&#21021;&#26399;&#35373;&#23450;&#12398;&#12414;&#12414;&#12391;&#12418;&#12424;&#12356;&#12391;&#12377;&#12364;&#12289;Cloud Firestore&#12398;&#12525;&#12465;&#12540;&#12471;&#12519;&#12531;&#12399;&#21033;&#29992;&#22320;&#12395;&#36817;&#12356;&#26041;&#12364;&#12424;&#12356;&#12398;&#12391;&#12289;&#21021;&#26399;&#35373;&#23450;&#12398;&#12302;nam5(us-central)&#12303;&#12363;&#12425;&#26481;&#20140;&#12391;&#12354;&#12427;&#12302;asia-northeast1&#12303;&#12395;&#22793;&#26356;&#12375;&#12414;&#12377;&#12290;<\/p><p>&#20316;&#26989;&#9313;&#65306;&#24038;&#12479;&#12502;&#12398;&#12302;Storage&#12303;&#12434;&#25276;&#12375;&#12390;&#12302;&#22987;&#12417;&#12427;&#12303;&#12508;&#12479;&#12531;&#12434;&#25276;&#12375;&#12390;&#12289;&#21021;&#26399;&#35373;&#23450;&#12398;&#12414;&#12414;&#12391;&#12302;&#23436;&#20102;&#12303;&#12508;&#12479;&#12531;&#12434;&#25276;&#12377;&#12392;&#12289;&#12487;&#12501;&#12457;&#12523;&#12488;&#12496;&#12465;&#12483;&#12488;&#12364;&#35373;&#23450;&#12373;&#12428;&#12390;&#23436;&#20102;&#12375;&#12414;&#12377;&#12290;<\/p><p>&nbsp;<\/p><p>&#12392;&#12356;&#12358;&#12371;&#12392;&#12391;&#20316;&#26989;&#9312;&#65374;&#9313;&#12364;&#23436;&#20102;&#12375;&#12383;&#12425;&#12289;1&#22238;&#30446;&#12398;&#12392;&#12365;&#12398;&#20316;&#26989;&#12434;&#12394;&#12382;&#12427;&#12424;&#12358;&#12395;&#36914;&#12435;&#12391;&#12356;&#12365;&#12414;&#12377;&#12290;<\/p><ol>\n<li>&#12454;&#12455;&#12502;&#12450;&#12503;&#12522;&#12395;Firebase&#12434;&#36861;&#21152;&#12375;&#12414;&#12377;&#12290;&#12302;&#9312;&#12450;&#12503;&#12522;&#12398;&#30331;&#37682;&#12303;&#12363;&#12425;&#12302;&#9313;Firebase SDK&#12398;&#36861;&#21152;&#12303;&#12414;&#12391;&#12399;&#21021;&#22238;&#12392;&#21516;&#12376;&#12391;&#12377;&#12364;&#12289;&#12302;&#9314;Firebase CLI&#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12303;&#12399;&#21021;&#22238;&#26178;&#12395;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#28168;&#12415;&#12394;&#12398;&#12391;&#24517;&#35201;&#12354;&#12426;&#12414;&#12379;&#12435;&#12290;&#12302;&#9315;Firebase Hosting&#12408;&#12398;&#12487;&#12503;&#12525;&#12452;&#12303;&#12391;&#12399;&#12289;&#20808;&#12411;&#12393;&#20316;&#25104;&#12375;&#12383;2&#20491;&#30446;&#12398;&#12450;&#12503;&#12522;&#12501;&#12457;&#12523;&#12480;&#12395;&#12390;&#12302;firebase login&#12303;&#12467;&#12510;&#12531;&#12489;&#12363;&#12425;&#12398;&#12302;firebase init&#12303;&#12467;&#12510;&#12531;&#12489;&#12434;&#23455;&#34892;&#12375;&#12390;&#21021;&#26399;&#35373;&#23450;&#12501;&#12449;&#12452;&#12523;&#12434;&#33258;&#21205;&#35373;&#32622;&#12375;&#12414;&#12377;&#12290;&#21021;&#26399;&#35373;&#23450;&#12399;&#22522;&#26412;&#30340;&#12395;&#12399;&#21021;&#22238;&#12392;&#21516;&#12376;&#35373;&#23450;&#12391;&#12377;&#12364;&#12289;Cloud Functions&#12399;&#20882;&#38957;&#12391;&#26360;&#12356;&#12383;&#12424;&#12358;&#12395;TypeScript&#12395;&#12375;&#12414;&#12377;&#12290;<\/li>\n<li>&#32154;&#12356;&#12390;&#12302;firebase deploy&#12303;&#12467;&#12510;&#12531;&#12489;&#12395;&#12390;&#12487;&#12503;&#12525;&#12452;&#12375;&#12424;&#12358;&#12392;&#12377;&#12427;&#12431;&#12369;&#12391;&#12377;&#12364;&#12289;&#20170;&#22238;&#12398;&#12424;&#12358;&#12395;Cloud Functions&#12434;TypeScript&#12395;&#12375;&#12390;&#12356;&#12427;&#12392;&#12289;<br>\n<blockquote><p>src\/index.ts:1:1 - error TS6133: 'functions' is declared but its value is never read.<\/p><\/blockquote>\n<p>&#12392;&#12356;&#12358;&#12456;&#12521;&#12540;&#12364;&#30330;&#29983;&#12375;&#12414;&#12377;&#12290;&#21021;&#26399;&#35373;&#23450;&#12398;&#12414;&#12414;&#12394;&#12398;&#12395;&#12394;&#12380;&#12539;&#12539;&#12539;&#12392;&#24605;&#12387;&#12390;&#12375;&#12414;&#12358;&#12392;&#12371;&#12429;&#12391;&#12377;&#12364;&#12289;Cloud Functions&#12434;&#26360;&#12356;&#12390;&#12356;&#12394;&#12356;&#29366;&#24907;&#65288;&#20316;&#12387;&#12383;&#12400;&#12363;&#12426;&#12384;&#12363;&#12425;&#24403;&#28982;&#65289;&#12394;&#12398;&#12395;&#35501;&#12415;&#36796;&#12418;&#12358;&#12392;&#12377;&#12427;&#12398;&#12364;&#21021;&#26399;&#35373;&#23450;&#12395;&#12394;&#12387;&#12390;&#12356;&#12427;&#12425;&#12375;&#12367;&#12289;&#26089;&#36895;&#12481;&#12455;&#12483;&#12463;&#27231;&#33021;&#12391;&#12456;&#12521;&#12540;&#12434;&#21520;&#12356;&#12390;&#12356;&#12427;&#12424;&#12358;&#12391;&#12377;&#12290;&#21462;&#12426;&#24613;&#12366;&#12399;&#24403;&#35442;&#12501;&#12449;&#12452;&#12523;&#12398;1&#34892;&#30446;&#12395;&#12354;&#12427;<\/p>\n<blockquote><p>import * as functions from 'firebase-functions';<\/p><\/blockquote>\n<p>&#12434;&#12467;&#12513;&#12531;&#12488;&#12450;&#12454;&#12488;&#12375;&#12390;&#12363;&#12425;&#12487;&#12503;&#12525;&#12452;&#12377;&#12427;&#12392;&#12289;&#12381;&#12398;&#12414;&#12414;&#12473;&#12512;&#12540;&#12474;&#12395;&#36914;&#12415;&#12289;<br>\n<span style=\"color: #3366ff;\">https:\/\/{YOUR_PROJECT_ID}.firebaseapp.com<\/span><br>\n<span style=\"color: #3366ff;\">https:\/\/{YOUR_PROJECT_ID}.web.app<\/span><br>\n&#12393;&#12385;&#12425;&#12398;URL&#12363;&#12425;&#12391;&#12418;&#12487;&#12501;&#12457;&#12523;&#12488;&#12506;&#12540;&#12472;&#12364;&#30906;&#35469;&#12391;&#12365;&#12427;&#12424;&#12358;&#12395;&#12394;&#12426;&#12414;&#12377;&#12290;&#12371;&#12428;&#12395;&#12390;&#12302;2.&#21021;&#22238;&#12395;&#20515;&#12387;&#12390;&#12487;&#12503;&#12525;&#12452;&#32232;&#12303;&#12399;&#23436;&#20102;&#12391;&#12377;&#12290;&#25040;&#12363;&#12375;&#12398;&#12487;&#12501;&#12457;&#12523;&#12488;&#12506;&#12540;&#12472;&#12364;&#38322;&#35239;&#12391;&#12365;&#12414;&#12375;&#12383;&#12290;<\/p><\/li>\n<\/ol><p>&nbsp;<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12620\" src=\"http:\/\/takuminasuno.com\/wp-content\/uploads\/2019\/12\/deploy.jpg\" alt=\"\" width=\"1600\" height=\"1019\"><\/p><p style=\"text-align: center;\"><strong>&#25040;&#12363;&#12375;&#12398;&#12487;&#12501;&#12457;&#12523;&#12488;&#12506;&#12540;&#12472;<\/strong><\/p><p>&nbsp;<\/p><p>&#12375;&#12363;&#12375;&#27531;&#24565;&#12394;&#12364;&#12425;&#12289;&#20170;&#22238;&#12399;&#26126;&#31034;&#30340;&#12395;&#12456;&#12521;&#12540;&#12364;&#20986;&#12383;&#12398;&#12391;&#27671;&#20184;&#12356;&#12390;&#12375;&#12414;&#12356;&#12414;&#12375;&#12383;&#12290;Cloud Functions&#12391;TypeScript&#12434;&#36984;&#12435;&#12384;&#12392;&#12365;&#12395;&#23451;&#12364;&#12431;&#12428;&#12427;&#38745;&#30340;&#12467;&#12540;&#12489;&#35299;&#26512;&#12484;&#12540;&#12523;&#65288;&#12522;&#12531;&#12488;&#12484;&#12540;&#12523;&#65289;&#12399;TSLint&#12394;&#12398;&#12391;&#12377;&#12364;&#12289;TSLint&#12399;2019&#24180;&#20013;&#12395;&#38750;&#25512;&#22888;&#12395;&#12394;&#12427;&#12371;&#12392;&#12364;&#27770;&#12414;&#12387;&#12390;&#12356;&#12427;&#21476;&#12356;&#12484;&#12540;&#12523;&#12394;&#12398;&#12391;&#12377;&#12424;&#12397;&#12290;&#12414;&#12384;&#12414;&#12384;&#29694;&#24441;&#12392;&#12399;&#35328;&#12387;&#12390;&#12418;&#12289;&#20309;&#12392;&#12418;&#35328;&#12356;&#38627;&#12356;&#27671;&#25345;&#12385;&#12395;&#12539;&#12539;&#12539;<\/p><p>&#22825;&#19979;&#12398;Google&#35641;&#35069;&#12398;Firebase&#12394;&#12398;&#12395;&#20309;&#25925;&#23550;&#24540;&#12364;&#36933;&#12356;&#12398;&#12363;&#12539;&#12539;&#12539;&#12392;&#22022;&#12356;&#12390;&#12418;&#12375;&#12423;&#12358;&#12364;&#12394;&#12356;&#12398;&#12391;&#12289;ESLint&#12434;&#20491;&#21029;&#12395;&#25163;&#21205;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12377;&#12427;&#12371;&#12392;&#12395;&#12375;&#12414;&#12375;&#12383;&#12290;<\/p><p>&#12394;&#12362;&#12289;TSLint&#12364;&#20837;&#12387;&#12390;&#12356;&#12427;&#29366;&#24907;&#12363;&#12425;&#12398;&#20316;&#26989;&#12399;&#38754;&#20498;&#12394;&#12398;&#12391;&#12289;TSLint&#12394;&#12375;&#12391;&#20877;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12375;&#12383;&#27573;&#38542;&#12363;&#12425;&#12398;&#20877;&#38283;&#12392;&#12356;&#12358;&#12371;&#12392;&#12391;&#27425;&#31456;&#12395;&#31227;&#12426;&#12414;&#12377;&#12290;<\/p><p>&nbsp;<\/p><h3><span class=\"ez-toc-section\" id=\"3ESLint%E3%81%AE%E6%89%8B%E5%8B%95%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB\"><\/span>3.ESLint&#12398;&#25163;&#21205;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;<span class=\"ez-toc-section-end\"><\/span><\/h3><p>&#12392;&#12356;&#12358;&#12371;&#12392;&#12391;&#12289;Firebase&#12395;ESLint&#12434;&#25163;&#21205;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12375;&#12390;&#12415;&#12414;&#12377;&#12290;<\/p><p><del>&#65288;Firebase&#12289;&#27005;&#12293;&#29872;&#22659;&#27083;&#31689;&#12398;&#12399;&#12378;&#12384;&#12387;&#12383;&#12398;&#12395;&#32048;&#12363;&#12356;&#12371;&#12392;&#12434;&#27671;&#12395;&#12375;&#12424;&#12358;&#12392;&#12377;&#12427;&#12392;&#12289;&#12420;&#12387;&#12401;&#12426;&#25163;&#38291;&#12364;&#12363;&#12363;&#12427;&#12424;&#12358;&#12391;&#12377;&#12290;&#12416;&#12416;&#12416;&#12539;&#12539;&#12539;&#12392;&#12356;&#12358;&#24863;&#12376;&#12391;&#12377;&#12290;&#12290;&#65289;<\/del><\/p><ol>\n<li>&#12414;&#12378;&#12289;&#12467;&#12510;&#12531;&#12489;&#12521;&#12452;&#12531;&#12391;&#12302;functions&#12303;&#12501;&#12457;&#12523;&#12480;&#12395;&#31227;&#21205;&#12375;&#12289;&#20197;&#19979;&#12398;&#12467;&#12510;&#12531;&#12489;&#12434;&#23455;&#34892;&#12375;&#12390;ESLint&#38306;&#36899;&#12398;&#12514;&#12472;&#12517;&#12540;&#12523;&#12434;&#36861;&#21152;&#12375;&#12414;&#12377;&#12290;&#35373;&#23450;&#12399;recommended&#38972;&#12415;&#12391;&#12356;&#12365;&#12383;&#12356;&#12398;&#12391;&#12289;prettier&#12418;&#12418;&#12385;&#12429;&#12435;&#20351;&#12356;&#12414;&#12377;&#12290;\n<pre class=\"toolbar:1 scroll:true lang:default decode:true\">npm install --save-dev eslint @typescript-eslint\/eslint-plugin @typescript-eslint\/parser prettier eslint-config-prettier eslint-plugin-prettier<\/pre>\n<\/li>\n<li>&#32154;&#12356;&#12390;&#12289;ESLint&#12398;&#35373;&#23450;&#12501;&#12449;&#12452;&#12523;&#12391;&#12354;&#12427;&#12302;.eslintrc.json&#12303;&#12434;&#12302;functions&#12303;&#12501;&#12457;&#12523;&#12480;&#30452;&#19979;&#12395;&#20316;&#12426;&#12414;&#12377;&#12290;&#33394;&#12293;&#37969;&#12415;&#12383;&#32080;&#26524;&#12289;&#20197;&#19979;&#12398;&#12424;&#12358;&#12394;&#12473;&#12463;&#12522;&#12503;&#12488;&#12395;&#12375;&#12414;&#12375;&#12383;&#12290;\n<pre class=\"toolbar:1 scroll:true lang:default decode:true\">{\r\n    \"extends\": [\r\n        \"eslint:recommended\",\r\n        \"plugin:@typescript-eslint\/eslint-recommended\",\r\n        \"plugin:@typescript-eslint\/recommended\",\r\n        \"plugin:prettier\/recommended\",\r\n        \"prettier\/@typescript-eslint\"\r\n    ],\r\n    \"plugins\": [\r\n        \"@typescript-eslint\"\r\n    ],\r\n    \"env\": {\r\n        \"es6\": true,\r\n        \"browser\": true,\r\n        \"node\": true,\r\n        \"jquery\": true\r\n    },\r\n    \"parser\": \"@typescript-eslint\/parser\",\r\n    \"parserOptions\": {\r\n        \"ecmaVersion\": 2019,\r\n        \"sourceType\": \"module\",\r\n        \"project\": \".\/tsconfig.json\"\r\n    },\r\n    \"rules\": {\r\n    }\r\n}<\/pre>\n<\/li>\n<li>&#32154;&#12356;&#12390;&#12302;functions&#12303;&#12501;&#12457;&#12523;&#12480;&#30452;&#19979;&#12395;&#12354;&#12427;&#12497;&#12483;&#12465;&#12540;&#12472;&#35373;&#23450;&#33258;&#36523;&#12391;&#12354;&#12427;&#12302;package.json&#12303;&#12434;&#38283;&#12365;&#12289;\"scripts\"&#12398;&#12392;&#12371;&#12429;&#12395;Lint&#35373;&#23450;&#12392;Lint:fix&#35373;&#23450;&#12434;&#36861;&#21152;&#12375;&#12414;&#12377;&#12290;\n<pre class=\"toolbar:1 lang:default decode:true\">\"scripts\":{\r\n    \"lint\": \"eslint src\/index.ts\",\r\n    \"lint:fix\": \"eslint --fix src\/index.ts\"\r\n}<\/pre>\n<\/li>\n<li>&#32154;&#12356;&#12390;Firebase&#12501;&#12457;&#12523;&#12480;&#30452;&#19979;&#12395;&#12354;&#12427;&#12302;firebase.json&#12303;&#12501;&#12449;&#12452;&#12523;&#12434;&#38283;&#12365;&#12289;\"functions\"&#12398;\"predeloy\"&#12398;&#12392;&#12371;&#12429;&#12395;Lint&#35373;&#23450;&#12434;&#36861;&#21152;&#12375;&#12414;&#12377;&#12290;\n<pre class=\"toolbar:1 scroll:true lang:default decode:true\">\"functions\": {\r\n    \"predeploy\": [\r\n        \"npm --prefix \\\"$RESOURCE_DIR\\\" run lint\",\r\n        \"npm --prefix \\\"$RESOURCE_DIR\\\" run build\"\r\n    ]\r\n}<\/pre>\n<\/li>\n<\/ol><p>&nbsp;<\/p><p>&#12371;&#12428;&#12395;&#12390;ESLint&#12398;&#35373;&#23450;&#12364;&#23436;&#20102;&#12391;&#12377;&#12290;<\/p><p>ESLint&#12399;&#20491;&#21029;&#35373;&#23450;&#12434;&#12375;&#12384;&#12377;&#12392;&#12461;&#12522;&#12364;&#12394;&#12356;&#12392;&#12356;&#12358;&#12363;&#27836;&#12395;&#23884;&#12387;&#12390;&#12375;&#12414;&#12356;&#12381;&#12358;&#12394;&#12398;&#12391;recommended&#38972;&#12415;&#12398;&#23039;&#21218;&#12434;&#20840;&#38754;&#12395;&#25276;&#12375;&#20986;&#12375;&#12383;&#12388;&#12418;&#12426;&#12391;&#12377;&#12364;&#12289;&#12300;&#12381;&#12358;&#12399;&#12356;&#12387;&#12390;&#12418;prettier&#12399;&#24517;&#38920;&#12384;&#12424;&#12394;&#12354;&#12301;&#12392;&#12363;&#12300;env&#12420;parseOptions&#12399;&#12381;&#12428;&#12394;&#12426;&#12395;&#35373;&#23450;&#12375;&#12394;&#12356;&#12392;&#12394;&#12354;&#12301;&#12392;&#12363;&#24745;&#12415;&#22987;&#12417;&#12390;&#38627;&#12375;&#12373;&#12398;&#19968;&#31471;&#12434;&#24863;&#12376;&#12383;&#12392;&#12371;&#12429;&#12391;&#26368;&#24460;&#12398;&#12473;&#12486;&#12483;&#12503;&#12395;&#31227;&#12426;&#12414;&#12377;&#12290;<\/p><p>&nbsp;<\/p><h3><span class=\"ez-toc-section\" id=\"4%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E3%81%AE%E6%A7%8B%E7%AF%89\"><\/span>4.&#38283;&#30330;&#29872;&#22659;&#12398;&#27083;&#31689;<span class=\"ez-toc-section-end\"><\/span><\/h3><p>&#12373;&#12390;&#12289;&#12371;&#12428;&#12384;&#12369;&#12391;&#12418;&#21313;&#20998;&#12395;2&#20491;&#30446;&#12398;&#12450;&#12503;&#12522;&#12434;&#20316;&#12427;&#12371;&#12392;&#12399;&#12391;&#12365;&#12427;&#12398;&#12391;&#12377;&#12364;&#12289;&#27604;&#36611;&#30340;&#38263;&#26399;&#30340;&#12394;&#38283;&#30330;&#12434;&#35211;&#36796;&#12435;&#12391;&#26412;&#30058;&#29872;&#22659;&#12392;&#38283;&#30330;&#29872;&#22659;&#12434;&#20998;&#12369;&#12390;&#20316;&#12427;&#12371;&#12392;&#12395;&#12375;&#12414;&#12377;&#12290;&#29872;&#22659;&#27083;&#31689;&#12398;&#12452;&#12513;&#12540;&#12472;&#12399;&#12371;&#12385;&#12425;&#12398;&#36890;&#12426;&#12391;&#12377;&#12290;<\/p><p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12720\" src=\"http:\/\/takuminasuno.com\/wp-content\/uploads\/2020\/05\/firebase-environment.png\" alt=\"\" width=\"1784\" height=\"800\"><\/p><p>&#35201;&#12399;&#12289;&#12300;Firebase&#12398;&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#12434;2&#12388;&#20316;&#12387;&#12390;&#29255;&#26041;&#12434;&#26412;&#30058;&#29872;&#22659;&#12289;&#12418;&#12358;&#29255;&#26041;&#12434;&#38283;&#30330;&#29872;&#22659;&#12392;&#12375;&#12390;&#29992;&#24847;&#12375;&#12289;&#12302;.firebaserc&#12303;&#12501;&#12449;&#12452;&#12523;&#19978;&#12391;&#20001;&#26041;&#12398;&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#12434;&#23450;&#32681;&#12377;&#12427;&#12392;&#12289;&#12467;&#12510;&#12531;&#12489;&#12521;&#12452;&#12531;&#12391;&#12393;&#12385;&#12425;&#12398;&#29872;&#22659;&#12395;&#12487;&#12503;&#12525;&#12452;&#12377;&#12427;&#12363;&#12434;&#20999;&#12426;&#26367;&#12360;&#12427;&#12371;&#12392;&#12364;&#12391;&#12365;&#12427;&#12301;&#12392;&#12356;&#12358;&#12398;&#12364;Firebase&#12398;&#38283;&#30330;&#29872;&#22659;&#12398;&#32771;&#12360;&#26041;&#12391;&#12377;&#12290;<\/p><p>&nbsp;<\/p><p>&#20855;&#20307;&#30340;&#12394;&#20316;&#26989;&#12392;&#12375;&#12390;&#12399;&#12471;&#12531;&#12503;&#12523;&#12395;&#12289;<\/p><ol>\n<li>&#12414;&#12378;&#12399;&#38283;&#30330;&#29872;&#22659;&#29992;&#12395;Firebase&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#12434;&#20316;&#12426;&#12414;&#12377;&#12290;&#35373;&#23450;&#12399;&#26412;&#30058;&#29872;&#22659;&#12392;&#20840;&#12390;&#21516;&#12376;&#12392;&#12375;&#12414;&#12377;&#12290;<\/li>\n<li>Firebase&#12501;&#12457;&#12523;&#12480;&#30452;&#19979;&#12395;&#12354;&#12427;&#12302;.firebaserc&#12303;&#12501;&#12449;&#12452;&#12523;&#12434;&#38283;&#12367;&#12392;&#12289;&#21021;&#26399;&#35373;&#23450;&#12398;&#12414;&#12414;&#12391;&#12354;&#12428;&#12400;\"projects\"&#37197;&#19979;&#12395;\"default\"&#12461;&#12540;&#12392;&#32016;&#12389;&#12356;&#12390;&#26412;&#30058;&#29872;&#22659;&#12398;&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;ID&#12364;&#26360;&#12356;&#12390;&#12354;&#12426;&#12414;&#12377;&#12290;&#12381;&#12371;&#12395;&#26412;&#30058;&#29872;&#22659;&#12392;&#12375;&#12390;\"production\"&#12461;&#12540;&#12395;&#23550;&#12375;&#12390;&#26412;&#30058;&#29872;&#22659;&#12398;&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;ID&#12289;\"development\"&#12461;&#12540;&#12395;&#23550;&#12375;&#12390;&#38283;&#30330;&#29872;&#22659;&#12398;&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;ID&#12434;&#12475;&#12483;&#12488;&#12375;&#12390;&#20445;&#23384;&#12375;&#12414;&#12377;&#12290;&#12371;&#12428;&#12391;&#28310;&#20633;&#12399;&#23436;&#20102;&#12391;&#12377;&#12290;\n<pre class=\"toolbar:1 lang:default decode:true\">{\r\n    \"projects\": {\r\n        \"production\": \"{YOUR_PRODUCTION_PROJECT_ID}\",\r\n        \"development\": \"{YOUR_DEVELOPMENT_PROJECT_ID}\"\r\n    }\r\n}<\/pre>\n<\/li>\n<li>&#12467;&#12510;&#12531;&#12489;&#12521;&#12452;&#12531;&#12391;&#12302;firebase use development&#12303;&#12467;&#12510;&#12531;&#12489;&#12434;&#25171;&#12388;&#12392;&#12487;&#12503;&#12525;&#12452;&#20808;&#12364;&#38283;&#30330;&#29872;&#22659;&#12395;&#20999;&#12426;&#26367;&#12431;&#12426;&#12289;&#32154;&#12356;&#12390;&#12302;firebase deploy&#12303;&#12467;&#12510;&#12531;&#12489;&#12434;&#25171;&#12388;&#12392;&#38283;&#30330;&#29872;&#22659;&#12395;&#12487;&#12503;&#12525;&#12452;&#12373;&#12428;&#12414;&#12377;&#12290;&#21516;&#27096;&#12395;&#12302;firebase use production&#12303;&#12467;&#12510;&#12531;&#12489;&#12434;&#25171;&#12388;&#12392;&#26412;&#30058;&#29872;&#22659;&#12395;&#20999;&#12426;&#26367;&#12431;&#12426;&#12289;&#26412;&#30058;&#29872;&#22659;&#12395;&#12487;&#12503;&#12525;&#12452;&#12391;&#12365;&#12427;&#12424;&#12358;&#12395;&#12394;&#12426;&#12414;&#12377;&#12290;<\/li>\n<\/ol><p>&#12418;&#12375;&#12473;&#12486;&#12540;&#12472;&#12531;&#12464;&#29872;&#22659;&#12418;&#20316;&#12426;&#12383;&#12356;&#22580;&#21512;&#12399;&#12289;&#12473;&#12486;&#12540;&#12472;&#12531;&#12464;&#29872;&#22659;&#29992;&#12398;&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#12434;&#20316;&#12426;&#12289;\"staging\"&#12461;&#12540;&#12395;&#23550;&#12375;&#12390;&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;ID&#12434;&#12475;&#12483;&#12488;&#12377;&#12428;&#12400;&#23550;&#24540;&#21487;&#33021;&#12391;&#12377;&#12290;<\/p><p>&#38283;&#30330;&#29872;&#22659;&#12398;&#27083;&#31689;&#12399;&#12289;ESLint&#12398;&#23550;&#24540;&#12392;&#27604;&#12409;&#12427;&#12392;&#20316;&#26989;&#12364;&#27573;&#36949;&#12356;&#12395;&#12471;&#12531;&#12503;&#12523;&#12391;&#33391;&#12363;&#12387;&#12383;&#12391;&#12377;&#12290;<\/p><p>&nbsp;<\/p><h3><span class=\"ez-toc-section\" id=\"5Cloud_Firestore%E3%81%AB%E3%82%88%E3%82%8B%E3%83%87%E3%83%BC%E3%82%BF%E5%87%A6%E7%90%86%E5%AE%9F%E8%A3%85\"><\/span>5.Cloud Firestore&#12395;&#12424;&#12427;&#12487;&#12540;&#12479;&#20966;&#29702;&#23455;&#35013;<span class=\"ez-toc-section-end\"><\/span><\/h3><p>&#28310;&#20633;&#12364;&#12391;&#12365;&#12383;&#12398;&#12391;&#12289;&#12356;&#12374;&#38283;&#30330;&#12395;&#20837;&#12426;&#12414;&#12377;&#12290;<\/p><p>&#20170;&#22238;&#12399;&#21021;&#22238;&#12392;&#36949;&#12387;&#12390;Cloud Firestore&#12434;&#20351;&#12358;&#12398;&#12391;&#12289;Cloud Firestore&#12398;&#28310;&#20633;&#12398;&#27969;&#12428;&#12434;&#30906;&#35469;&#12375;&#12388;&#12388;&#12289;&#12487;&#12540;&#12479;&#20966;&#29702;&#12398;&#22522;&#26412;&#12434;CRUD&#12372;&#12392;&#12395;&#30906;&#35469;&#12375;&#12414;&#12377;&#12290;<\/p><p>&nbsp;<\/p><h4><span class=\"ez-toc-section\" id=\"Create%EF%BC%88%E6%96%B0%E8%A6%8F%E4%BD%9C%E6%88%90%EF%BC%89\"><\/span>Create&#65288;&#26032;&#35215;&#20316;&#25104;&#65289;<span class=\"ez-toc-section-end\"><\/span><\/h4><pre class=\"toolbar:1 lang:default decode:true\">let db = firebase.firestore();\r\n\r\n\/\/&#12467;&#12524;&#12463;&#12471;&#12519;&#12531;&#12395;ID&#12521;&#12531;&#12480;&#12512;&#12395;&#12390;&#12489;&#12461;&#12517;&#12513;&#12531;&#12488;&#36861;&#21152;\r\ndb.collection('{COLLECTION_ID}').add({data_object});\r\n\r\n\/\/&#12467;&#12524;&#12463;&#12471;&#12519;&#12531;&#12395;ID&#12521;&#12531;&#12480;&#12512;&#12395;&#12390;&#12489;&#12461;&#12517;&#12513;&#12531;&#12488;&#36861;&#21152;\r\ndb.collection('{COLLECTION_ID}').doc().set({data_object});\r\n\r\n\/\/&#12467;&#12524;&#12463;&#12471;&#12519;&#12531;&#12408;ID&#25351;&#23450;&#12395;&#12390;&#12489;&#12461;&#12517;&#12513;&#12531;&#12488;&#36861;&#21152;&#65288;&#23384;&#22312;&#12377;&#12427;&#22580;&#21512;&#12399;&#19978;&#26360;&#12365;&#65289;\r\ndb.collection('{COLLECTION_ID}').doc('{DOCUMENT_ID}').set({data_object});<\/pre><p>&#12471;&#12531;&#12503;&#12523;&#12394;1&#26412;&#12398;&#12484;&#12522;&#12540;&#12384;&#12387;&#12383;Realtime Database&#12392;&#27604;&#36611;&#12377;&#12427;&#12392;&#12289;&#12467;&#12524;&#12463;&#12471;&#12519;&#12531;&#12398;&#21336;&#20301;&#12364;&#12484;&#12522;&#12540;&#12398;&#21336;&#20301;&#12392;&#12356;&#12358;&#24863;&#12376;&#12391;&#35079;&#25968;&#12398;&#12484;&#12522;&#12540;&#12364;&#23384;&#22312;&#12391;&#12365;&#12427;&#12452;&#12513;&#12540;&#12472;&#12391;&#12289;&#12467;&#12524;&#12463;&#12471;&#12519;&#12531;&#37197;&#19979;&#12395;&#12406;&#12425;&#19979;&#12370;&#12427;&#35079;&#25968;&#12398;&#26525;&#12392;&#12375;&#12390;&#12489;&#12461;&#12517;&#12513;&#12531;&#12488;&#12364;&#23384;&#22312;&#12377;&#12427;&#12452;&#12513;&#12540;&#12472;&#12391;&#12377;&#12290;<\/p><p>Realtime Database&#12392;&#21516;&#12376;&#12391;NoSQL&#24418;&#24335;&#65288;&#22810;&#37325;&#36899;&#24819;&#37197;&#21015;&#12481;&#12483;&#12463;&#65289;&#12394;&#12398;&#12391;&#12289;&#12489;&#12461;&#12517;&#12513;&#12531;&#12488;&#12395;&#12399;&#24120;&#12395;&#22266;&#26377;&#12398;ID&#12392;&#20516;&#12364;&#12475;&#12483;&#12488;&#12373;&#12428;&#12414;&#12377;&#12290;&#36899;&#24819;&#37197;&#21015;&#12392;&#12375;&#12390;ID&#12434;&#24847;&#35672;&#12375;&#12383;&#12356;&#22580;&#21512;&#12399;ID&#12434;&#26126;&#31034;&#30340;&#12395;&#35373;&#23450;&#12377;&#12427;&#12392;&#33391;&#12356;&#12391;&#12377;&#12375;&#12289;&#12381;&#12358;&#12391;&#12394;&#12367;&#12383;&#12384;&#12398;&#37197;&#21015;&#12392;&#12375;&#12390;&#25201;&#12356;&#12383;&#12356;&#22580;&#21512;&#12399;ID&#12434;&#26126;&#31034;&#12379;&#12378;&#12521;&#12531;&#12480;&#12512;&#12395;&#20219;&#12379;&#12390;&#12489;&#12461;&#12517;&#12513;&#12531;&#12488;&#36861;&#21152;&#12377;&#12428;&#12400;&#12424;&#12356;&#12392;&#24605;&#12356;&#12414;&#12377;&#12290;<\/p><p>&nbsp;<\/p><h4><span class=\"ez-toc-section\" id=\"Read%EF%BC%88%E5%8F%82%E7%85%A7%EF%BC%89\"><\/span>Read&#65288;&#21442;&#29031;&#65289;<span class=\"ez-toc-section-end\"><\/span><\/h4><pre class=\"toolbar:1 lang:default decode:true\">let db = firebase.firestore();\r\n\r\n\/\/&#12467;&#12524;&#12463;&#12471;&#12519;&#12531;&#20869;&#12398;1&#12388;&#12398;&#12489;&#12461;&#12517;&#12513;&#12531;&#12488;&#12434;1&#24230;&#12384;&#12369;&#21462;&#24471;&#12377;&#12427;\r\ndb.collection('{COLLECTION_ID}').doc('{DOCUMENT_ID}').get().then(function(document){\r\n\tif (document.exists){\r\n\t\t\/\/&#12489;&#12461;&#12517;&#12513;&#12531;&#12488;&#12364;&#12354;&#12427;&#22580;&#21512;\r\n\t\tlet data = document.data();\r\n\t} else {\r\n\t\t\/\/&#12489;&#12461;&#12517;&#12513;&#12531;&#12488;&#12364;&#12394;&#12356;&#22580;&#21512;\r\n\t});\r\n});\r\n\r\n\/\/&#12467;&#12524;&#12463;&#12471;&#12519;&#12531;&#20869;&#12398;1&#12388;&#12398;&#12489;&#12461;&#12517;&#12513;&#12531;&#12488;&#12392;&#21516;&#26399;&#12375;&#12390;&#12522;&#12450;&#12523;&#12479;&#12452;&#12512;&#12450;&#12483;&#12503;&#12487;&#12540;&#12488;&#12434;&#12363;&#12369;&#12427;\r\ndb.collection('{COLLECTION_ID}').doc('{DOCUMENT_ID}').onSnapshot(function(document){\r\n\tif (document.exists){\r\n\t\t\/\/&#12489;&#12461;&#12517;&#12513;&#12531;&#12488;&#12364;&#12354;&#12427;&#22580;&#21512;\r\n\t\tlet data = document.data();\r\n\t} else {\r\n\t\t\/\/&#12489;&#12461;&#12517;&#12513;&#12531;&#12488;&#12364;&#12394;&#12356;&#22580;&#21512;\r\n\t});\r\n});\r\n\r\n\/\/&#12467;&#12524;&#12463;&#12471;&#12519;&#12531;&#20869;&#12398;&#20840;&#12489;&#12461;&#12517;&#12513;&#12531;&#12488;&#12434;1&#24230;&#12384;&#12369;&#21462;&#24471;&#12377;&#12427;\r\ndb.collection('{COLLECTION_ID}').get().then(function(snapshot){\r\n\tsnapshot.forEach(function(document){\r\n\t\t\/\/&#12489;&#12461;&#12517;&#12513;&#12531;&#12488;&#12372;&#12392;&#12398;&#20966;&#29702;\r\n\t\tlet data = document.data();\r\n\t});\r\n});\r\n\r\n\/\/&#12467;&#12524;&#12463;&#12471;&#12519;&#12531;&#20869;&#12398;&#20840;&#12489;&#12461;&#12517;&#12513;&#12531;&#12488;&#12392;&#21516;&#26399;&#12375;&#12390;&#12522;&#12450;&#12523;&#12479;&#12452;&#12512;&#12450;&#12483;&#12503;&#12487;&#12540;&#12488;&#12434;&#12363;&#12369;&#12427;\r\ndb.collection('{COLLECTION_ID}').onSnapshot(function(snapshot){\r\n\tsnapshot.forEach(function(document){\r\n\t\t\/\/&#12489;&#12461;&#12517;&#12513;&#12531;&#12488;&#12372;&#12392;&#12398;&#20966;&#29702;\r\n\t\tlet data = document.data();\r\n\t});\r\n});<\/pre><p>&#22522;&#26412;&#12398;&#22411;&#12392;&#12375;&#12390;&#12399;&#12289;<\/p><p>&#9312;1&#12388;&#12398;&#12489;&#12461;&#12517;&#12513;&#12531;&#12488;&#12434;&#21462;&#24471;&#12377;&#12427;&#12363;&#65295;&#20840;&#12390;&#12398;&#12489;&#12461;&#12517;&#12513;&#12531;&#12488;&#12434;&#65288;&#12467;&#12524;&#12463;&#12471;&#12519;&#12531;&#12372;&#12392;&#65289;&#21462;&#24471;&#12377;&#12427;&#12363;<\/p><p>&#9313;1&#24230;&#12384;&#12369;&#21462;&#24471;&#12377;&#12427;&#12363;&#65295;&#12522;&#12450;&#12523;&#12479;&#12452;&#12512;&#12450;&#12483;&#12503;&#12487;&#12540;&#12488;&#65288;&#12522;&#12483;&#12473;&#12531;&#65289;&#12377;&#12427;&#12363;<\/p><p>&#12398;2&#36600;&#12391;&#22793;&#12431;&#12387;&#12390;&#12367;&#12427;&#12452;&#12513;&#12540;&#12472;&#12391;&#12377;&#12290;&#29305;&#12395;&#9313;&#12395;&#12388;&#12356;&#12390;&#12399;&#12289;&#12302;.get().then&#12303;,&#12302;.onSnapchat&#12303;&#12392;&#38306;&#25968;&#12524;&#12505;&#12523;&#12391;&#22793;&#12431;&#12387;&#12390;&#12367;&#12427;&#12398;&#12391;&#12289;&#12371;&#12371;&#12399;&#26126;&#30906;&#12395;&#20351;&#12356;&#20998;&#12369;&#12425;&#12428;&#12427;&#12424;&#12358;&#12395;&#12375;&#12383;&#12356;&#12392;&#12371;&#12429;&#12391;&#12377;&#12290;&#12467;&#12524;&#12463;&#12471;&#12519;&#12531;&#12392;&#12489;&#12461;&#12517;&#12513;&#12531;&#12488;&#12398;&#38542;&#23652;&#27083;&#36896;&#12434;&#29702;&#35299;&#12377;&#12428;&#12400;&#12289;Realtime Database&#12392;&#12373;&#12411;&#12393;&#22793;&#12431;&#12425;&#12394;&#12356;&#21360;&#35937;&#12391;&#12377;&#12290;&#12394;&#12362;&#12289;&#20182;&#12395;&#12418;&#12522;&#12483;&#12473;&#12531;&#12398;&#22580;&#21512;&#12395;&#12399;&#22793;&#26356;&#31278;&#21029;&#65288;added\/modified\/removed&#65289;&#12372;&#12392;&#12398;&#21462;&#24471;&#12394;&#12393;&#12398;&#12486;&#12463;&#12491;&#12459;&#12523;&#12394;&#23455;&#35013;&#12418;&#12354;&#12426;&#12414;&#12377;&#12364;&#12289;&#12371;&#12371;&#12391;&#12399;&#21106;&#24859;&#12375;&#12414;&#12377;&#12290;<\/p><p>&nbsp;<\/p><h4><span class=\"ez-toc-section\" id=\"Update%EF%BC%88%E6%9B%B4%E6%96%B0%EF%BC%89\"><\/span>Update&#65288;&#26356;&#26032;&#65289;<span class=\"ez-toc-section-end\"><\/span><\/h4><pre class=\"toolbar:1 lang:default decode:true \">let db = firebase.firestore();\r\n\r\n\/\/&#12467;&#12524;&#12463;&#12471;&#12519;&#12531;&#12408;ID&#25351;&#23450;&#12395;&#12390;&#12489;&#12461;&#12517;&#12513;&#12531;&#12488;&#12434;&#12501;&#12451;&#12540;&#12523;&#12489;&#25351;&#23450;&#12391;&#19978;&#26360;&#12365;\r\ndb.collection('{COLLECTION_ID}').doc('{DOCUMENT_ID}').update({\r\n\t{FIELD_ID1}:{FIELD_VALUE1},\r\n\t{FIELD_ID2}:{FIELD_VALUE2}, ...\r\n});\r\n\r\n\/\/&#12467;&#12524;&#12463;&#12471;&#12519;&#12531;&#12408;ID&#25351;&#23450;&#12395;&#12390;&#12489;&#12461;&#12517;&#12513;&#12531;&#12488;&#12434;&#20840;&#19978;&#26360;&#12365;\r\ndb.collection('{COLLECTION_ID}').doc('{DOCUMENT_ID}').set({data_object});<\/pre><p>&#12471;&#12531;&#12503;&#12523;&#12395;&#20840;&#19978;&#26360;&#12365;&#12377;&#12427;&#22580;&#21512;&#12399;&#12302;set&#12303;&#12391;&#12424;&#12356;&#12391;&#12377;&#12364;&#12289;&#12461;&#12540;&#21336;&#20301;&#12391;&#26356;&#26032;&#12375;&#12383;&#12356;&#22580;&#21512;&#12399;&#12302;update&#12303;&#12434;&#20351;&#12356;&#12414;&#12377;&#12290;<\/p><p>&nbsp;<\/p><h4><span class=\"ez-toc-section\" id=\"Delete%EF%BC%88%E5%89%8A%E9%99%A4%EF%BC%89\"><\/span>Delete&#65288;&#21066;&#38500;&#65289;<span class=\"ez-toc-section-end\"><\/span><\/h4><pre class=\"toolbar:1 lang:default decode:true\">let db = firebase.firestore();\r\n\r\n\/\/&#12467;&#12524;&#12463;&#12471;&#12519;&#12531;&#12398;1&#12388;&#12398;&#12489;&#12461;&#12517;&#12513;&#12531;&#12488;&#12398;&#21066;&#38500;\r\ndb.collection('{COLLECTION_ID}').doc('{DOCUMENT_ID}').delete();\r\n\r\n\/\/&#12467;&#12524;&#12463;&#12471;&#12519;&#12531;&#37197;&#19979;&#12398;&#20840;&#12489;&#12461;&#12517;&#12513;&#12531;&#12488;&#21066;&#38500;\r\ndb.collection('{COLLECTION_ID}').onSnapshot(function(snapshot){\r\n\tsnapshot.forEach(document =&gt; {\r\n\t\tlet id = document.id;\r\n\t\tdb.collection('{COLLECTION_ID}').doc(id).delete();\r\n\t});\r\n});\r\n<\/pre><p>&#12454;&#12455;&#12502;&#12463;&#12521;&#12452;&#12450;&#12531;&#12488;&#12363;&#12425;&#12399;&#12289;&#12467;&#12524;&#12463;&#12471;&#12519;&#12531;&#12398;&#21066;&#38500;&#12420;&#35079;&#25968;&#12489;&#12461;&#12517;&#12513;&#12531;&#12488;&#12398;&#19968;&#25324;&#21066;&#38500;&#12399;&#12391;&#12365;&#12378;&#12289;ID&#25351;&#23450;&#12391;1&#20491;&#12378;&#12388;&#28040;&#12377;&#12384;&#12369;&#12392;&#12394;&#12387;&#12390;&#12356;&#12414;&#12377;&#12290;&#12463;&#12521;&#12452;&#12450;&#12531;&#12488;&#20596;&#12363;&#12425;&#12398;&#20966;&#29702;&#12399;&#12475;&#12461;&#12517;&#12522;&#12486;&#12451;&#12522;&#12473;&#12463;&#12364;&#39640;&#12356;&#12398;&#12391;&#12289;&#12414;&#12354;&#12375;&#12423;&#12358;&#12364;&#12394;&#12356;&#12392;&#12371;&#12429;&#12384;&#12392;&#24605;&#12356;&#12414;&#12377;&#12290;&#12393;&#12358;&#12375;&#12390;&#12418;&#28961;&#29702;&#30690;&#29702;&#12420;&#12425;&#12394;&#12356;&#12392;&#12356;&#12369;&#12394;&#12356;&#22580;&#21512;&#12399;&#12289;&#12489;&#12461;&#12517;&#12513;&#12531;&#12488;&#12434;&#12523;&#12540;&#12503;&#12375;&#12390;1&#20491;1&#20491;ID&#12434;&#21462;&#24471;&#12375;&#12390;&#21066;&#38500;&#20966;&#29702;&#12434;&#32368;&#12426;&#36820;&#12377;&#26041;&#27861;&#12434;&#35226;&#12360;&#12390;&#12362;&#12365;&#12414;&#12377;&#12290;<\/p><p>&nbsp;<\/p><p>&#12392;&#12356;&#12358;&#12371;&#12392;&#12391;CRUD&#12372;&#12392;&#12395;&#20027;&#35201;&#12394;&#20966;&#29702;&#12434;&#30906;&#35469;&#12375;&#12390;&#12415;&#12414;&#12375;&#12383;&#12290;Cloud Firestore&#12399;&#20182;&#12395;&#12418;Query&#12420;OrderBy&#12420;SubCollection&#12394;&#12393;&#12398;&#27231;&#33021;&#12364;&#12354;&#12387;&#12383;&#12426;&#35328;&#35486;&#12372;&#12392;&#12395;&#20351;&#12360;&#12427;&#27231;&#33021;&#65288;&#12420;&#34920;&#35352;&#65289;&#12364;&#22793;&#12431;&#12387;&#12390;&#12356;&#12383;&#12426;&#12394;&#12393;&#12377;&#12427;&#12398;&#12391;&#12289;&#35443;&#12375;&#12367;&#12399;<a href=\"https:\/\/firebase.google.com\/docs\/firestore\/\" target=\"_blank\" rel=\"noopener noreferrer\">&#20844;&#24335;&#12398;&#12489;&#12461;&#12517;&#12513;&#12531;&#12488;<\/a>&#12434;&#21442;&#29031;&#12375;&#12414;&#12375;&#12423;&#12358;&#12290;<\/p><p>&nbsp;<\/p><h3><span class=\"ez-toc-section\" id=\"%E3%81%BE%E3%81%A8%E3%82%81\"><\/span>&#12414;&#12392;&#12417;<span class=\"ez-toc-section-end\"><\/span><\/h3><p>&#12392;&#12356;&#12358;&#12371;&#12392;&#12391;&#12289;&#12371;&#12398;&#12354;&#12383;&#12426;&#12398;&#12487;&#12540;&#12479;&#22522;&#26412;&#25805;&#20316;&#12434;&#29702;&#35299;&#12375;&#12390;&#12362;&#12369;&#12400;&#12289;Cloud Firestore&#12434;&#20351;&#12387;&#12383;&#26368;&#20302;&#38480;&#12398;&#12454;&#12455;&#12502;&#12450;&#12503;&#12522;&#12434;&#23455;&#35013;&#12391;&#12365;&#12427;&#12392;&#24605;&#12356;&#12414;&#12377;&#12290;<\/p><p>&#12383;&#12384;&#12289;&#26368;&#20302;&#38480;&#12392;&#35328;&#12358;&#12398;&#12399;&#12289;&#12371;&#12428;&#12384;&#12369;&#12384;&#12392;&#12475;&#12461;&#12517;&#12450;&#12394;&#12487;&#12540;&#12479;&#20966;&#29702;&#12395;&#12399;&#31243;&#36960;&#12356;&#29366;&#24907;&#12384;&#12363;&#12425;&#12391;&#12377;&#12290;<\/p><p>&#12463;&#12521;&#12452;&#12450;&#12531;&#12488;&#12469;&#12452;&#12489;&#12391;&#21205;&#12367;JavaScript&#38972;&#12415;&#12398;&#12487;&#12540;&#12479;&#20966;&#29702;&#12399;&#23550;&#31574;&#12394;&#12375;&#12384;&#12392;&#12475;&#12461;&#12517;&#12522;&#12486;&#12451;&#12507;&#12540;&#12523;&#12384;&#12425;&#12369;&#12395;&#12394;&#12427;&#12398;&#12391;&#12289;&#12302;firestore.rules&#12303;&#12398;&#36969;&#20999;&#12394;&#35373;&#23450;&#12364;&#24517;&#35201;&#12391;&#12377;&#12290;&#12414;&#12383;&#12289;&#37325;&#12383;&#12356;&#12487;&#12540;&#12479;&#20966;&#29702;&#12420;&#22810;&#24425;&#12394;&#12488;&#12522;&#12460;&#12540;&#12434;&#23455;&#35013;&#12377;&#12427;&#22580;&#21512;&#12399;&#12469;&#12540;&#12496;&#12540;&#12469;&#12452;&#12489;&#12391;&#21205;&#12367;&#12302;Cloud Functions&#12303;&#12364;&#36969;&#20999;&#12363;&#12418;&#12363;&#12418;&#12375;&#12428;&#12414;&#12379;&#12435;&#12290;&#12414;&#12383;&#12289;&#23455;&#38555;&#12395;&#12487;&#12540;&#12479;&#27083;&#36896;&#12434;&#32771;&#12360;&#12427;&#12392;&#12365;&#12395;&#12289;NoSQL&#12394;&#12425;&#12391;&#12399;&#12398;&#20966;&#29702;&#12375;&#12420;&#12377;&#12356;&#35373;&#35336;&#12434;&#32771;&#12360;&#12427;&#12398;&#12364;&#22823;&#12365;&#12394;&#35506;&#38988;&#12391;&#12377;&#12290;&#12354;&#12392;&#12289;&#12487;&#12470;&#12452;&#12531;&#12434;&#25972;&#12360;&#12427;&#12358;&#12360;&#12391;&#12399;&#36969;&#20999;&#12394;&#12501;&#12524;&#12540;&#12512;&#12527;&#12540;&#12463;&#12398;&#23566;&#20837;&#12392;&#36984;&#23450;&#12364;&#27714;&#12417;&#12425;&#12428;&#12427;&#12465;&#12540;&#12473;&#12364;&#22810;&#12356;&#12391;&#12375;&#12423;&#12358;&#12290;<\/p><p>&#12373;&#12367;&#12387;&#12392;&#12450;&#12503;&#12522;&#12364;&#20316;&#12428;&#12381;&#12358;&#12394;Firebase&#12391;&#12418;&#12289;&#12385;&#12419;&#12435;&#12392;&#20316;&#12429;&#12358;&#12392;&#12377;&#12427;&#12392;&#33394;&#12293;&#12392;&#32771;&#12360;&#12394;&#12356;&#12392;&#12356;&#12369;&#12394;&#12356;&#12392;&#12356;&#12358;&#12398;&#12399;&#21516;&#12376;&#12394;&#12398;&#12384;&#12394;&#12392;&#12356;&#12358;&#21360;&#35937;&#12391;&#12375;&#12383;&#12290;<\/p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#21069;&#22238;&#12399;&#12302;&#12304;Web&#12450;&#12503;&#12522;&#20316;&#25104;&#12305;Firebase&#12434;&#2 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":12733,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[252],"tags":[],"class_list":["post-12722","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-business_ja"],"_links":{"self":[{"href":"https:\/\/takuminasuno.com\/ja\/wp-json\/wp\/v2\/posts\/12722","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/takuminasuno.com\/ja\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/takuminasuno.com\/ja\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/takuminasuno.com\/ja\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/takuminasuno.com\/ja\/wp-json\/wp\/v2\/comments?post=12722"}],"version-history":[{"count":8,"href":"https:\/\/takuminasuno.com\/ja\/wp-json\/wp\/v2\/posts\/12722\/revisions"}],"predecessor-version":[{"id":12734,"href":"https:\/\/takuminasuno.com\/ja\/wp-json\/wp\/v2\/posts\/12722\/revisions\/12734"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/takuminasuno.com\/ja\/wp-json\/wp\/v2\/media\/12733"}],"wp:attachment":[{"href":"https:\/\/takuminasuno.com\/ja\/wp-json\/wp\/v2\/media?parent=12722"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/takuminasuno.com\/ja\/wp-json\/wp\/v2\/categories?post=12722"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/takuminasuno.com\/ja\/wp-json\/wp\/v2\/tags?post=12722"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}