{"id":685,"date":"2021-09-28T15:21:12","date_gmt":"2021-09-28T06:21:12","guid":{"rendered":"https:\/\/osora.work\/blog\/?p=685"},"modified":"2022-01-18T19:02:30","modified_gmt":"2022-01-18T10:02:30","slug":"firebase%e3%81%aeweb%e3%83%90%e3%83%bc%e3%82%b8%e3%83%a7%e3%83%b39modular%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6","status":"publish","type":"post","link":"https:\/\/osora.ne0n.xyz\/blog\/685","title":{"rendered":"firebase\u306eWeb\u30d0\u30fc\u30b8\u30e7\u30f39(modular)\u306b\u3064\u3044\u3066"},"content":{"rendered":"\n<p>\u66f8\u304d\u65b9\u304c\u65b0\u3057\u304f\u306a\u3063\u3066\u3066\u308f\u304b\u3089\u3093\uff01\uff01\uff01\u306e\u3067\u5fc5\u8981\u306a\u90e8\u5206\u3060\u3051\u81ea\u5206\u306a\u308a\u306b\u89e3\u91c8\u3057\u305f\u3082\u306e<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u30c7\u30fc\u30bf\u306e\u8ffd\u52a0<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u540d\u3092\u6307\u5b9a\u3057\u306a\u3044(\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u81ea\u52d5\u751f\u6210)<\/h3>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/firebase.google.com\/docs\/firestore\/quickstart?hl=ja#web-version-9_2\" target=\"_blank\">https:\/\/firebase.google.com\/docs\/firestore\/quickstart?hl=ja#web-version-9_2<\/a><\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>import { collection, addDoc } from &quot;firebase\/firestore&quot;;\/\/\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u8aad\u307f\u8fbc\u307f\n\ntry {\n  const docRef = await addDoc(collection(db, &quot;users&quot;), {\n\u3000\/\/\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u63a5\u7d9a\u3057\u3001users\u3068\u3044\u3046\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306b\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u8ffd\u52a0\u3059\u308b\n    first: &quot;Ada&quot;,\n    last: &quot;Lovelace&quot;,\n    born: 1815\n  });\n  console.log(&quot;Document written with ID: &quot;, docRef.id);\n  \/\/\u8ffd\u52a0\u3055\u308c\u305f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u540d\u524d\u304c\u5e30\u3063\u3066\u304f\u308b(?)(undefined\u3060\u3063\u305f)\n} catch (e) {\n  console.error(&quot;Error adding document: &quot;, e);\/\/\u30a8\u30e9\u30fc\u3092\u30ad\u30e3\u30c3\u30c1\n}\n<\/code><\/pre><\/div>\n\n\n\n<p>vue.js\u3060\u3068\u300c<span class=\"has-inline-color has-vivid-purple-color\">await<\/span>\u300d\u304c\u4e88\u7d04\u8a9e\u306b\u306a\u3063\u3066\u3044\u3066\uff08\uff1f\uff09\u4f7f\u3048\u306a\u3044\u306e\u3067\u6d88\u3057\u3061\u3083\u3044\u307e\u3057\u305f\u3002<br>\u4eca\u306e\u3068\u3053\u308d\u554f\u984c\u306a\u304f\u52d5\u3044\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u540d\u3092\u6307\u5b9a\u3057\u3066\u4f5c\u6210or\u4e0a\u66f8\u304d<\/h3>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/firebase.google.com\/docs\/firestore\/manage-data\/add-data?hl=ja\" target=\"_blank\">https:\/\/firebase.google.com\/docs\/firestore\/manage-data\/add-data?hl=ja<\/a><\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>import { doc, setDoc } from &quot;firebase\/firestore&quot;;\n\n\/\/ Add a new document in collection &quot;cities&quot;\nawait setDoc(doc(db, &quot;cities&quot;, &quot;LA&quot;), {\n\u3000\/\/cities\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306eLA\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306b\u4e0a\u66f8\u304d\n  name: &quot;Los Angeles&quot;,\n  state: &quot;CA&quot;,\n  country: &quot;USA&quot;\n});<\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">\u3010\u91cd\u8981\u3011\u4e0a\u66f8\u304d\u306e\u30aa\u30d7\u30b7\u30e7\u30f3<\/h4>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>import { doc, setDoc } from &quot;firebase\/firestore&quot;;\n\nconst cityRef = doc(db, &#39;cities&#39;, &#39;BJ&#39;);\nsetDoc(cityRef, { capital: true }, { merge: true });\/\/capital\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u8ffd\u52a0\u3057\u305f\u3044\u3002\n\/\/marge\u3092false\u306b\u3059\u308b\u3068BJ\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5185\u306e\u5168\u3066\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u304c\u4e0a\u66f8\u304d\u3055\u308c\u3066\u300ccapital\u300d\u3057\u304b\u6b8b\u3089\u306a\u304f\u306a\u308b\u3002<\/code><\/pre><\/div>\n\n\n\n<p>\u3069\u3046\u3044\u3046\u3053\u3068\u304b\u3068\u3044\u3046\u3068\u3001\u300cmarge: false\u300d\u306b\u3059\u308b\u3068<\/p>\n\n\n\n<p>\u4f8b\uff1aLA\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8<br>name: &#8220;Los Angeles&#8221;,<br>state: &#8220;CA&#8221;,<br>country: &#8220;USA&#8221;<\/p>\n\n\n\n<p>\u3068\u306a\u3063\u3066\u3044\u305f\u306e\u304c<\/p>\n\n\n\n<p>\u4f8b\uff1aLA\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8<br>capital: true<\/p>\n\n\n\n<p>\u306b\u306a\u3063\u3066\u3057\u307e\u3046\u3002<\/p>\n\n\n\n<p>\u3053\u306e\u60b2\u5287\u3092\u907f\u3051\u305f\u3044\u3068\u304d\u306f\u300cmarge: true\u300d\u3067OK\u3002<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u30c7\u30fc\u30bf\u306e\u4e0a\u66f8\u304d<\/h3>\n\n\n\n<p>\u5b9f\u306f\u4e0a\u66f8\u304d\u5c02\u7528\u306e\u95a2\u6570\u304c\u3042\u308b\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>import { doc, updateDoc } from &quot;firebase\/firestore&quot;;\n\nconst washingtonRef = doc(db, &quot;cities&quot;, &quot;DC&quot;);\n\n\/\/ Set the &quot;capital&quot; field of the city &#39;DC&#39;\nawait updateDoc(washingtonRef, {\n  capital: true\n});<\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u578b\u306e\u4fdd\u5b58<\/h3>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/firebase.google.com\/docs\/firestore\/manage-data\/add-data?hl=ja#web-version-9_2\" target=\"_blank\">https:\/\/firebase.google.com\/docs\/firestore\/manage-data\/add-data?hl=ja#web-version-9_2<\/a><\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>  import { doc, setDoc, Timestamp } from &quot;firebase\/firestore&quot;;\n\nconst docData = {\n    dateExample: Timestamp.fromDate(new Date(&quot;December 10, 1815&quot;)),\n    \/\/\u7279\u5b9a\u306e\u65e5\u306b\u3061\n    dateExample2: Timestamp.fromDate(new Date),\n    \/\/\u73fe\u5728\u306e\u6642\u9593\n};\nawait setDoc(doc(db, &quot;data&quot;, &quot;one&quot;), docData);<\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u30b5\u30d6\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u8ffd\u52a0<\/h3>\n\n\n\n<p>\u30b5\u30d6\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3078\u306e\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9<br><a rel=\"noreferrer noopener\" href=\"https:\/\/firebase.google.com\/docs\/firestore\/data-model?hl=ja#web-version-8_3\" target=\"_blank\">https:\/\/firebase.google.com\/docs\/firestore\/data-model?hl=ja#web-version-8_3<\/a><\/p>\n\n\n\n<p>\u30c7\u30fc\u30bf\u306e\u8ffd\u52a0<br><a href=\"https:\/\/firebase.google.com\/docs\/firestore\/manage-data\/add-data?hl=ja#web-version-9_6\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/firebase.google.com\/docs\/firestore\/manage-data\/add-data?hl=ja#web-version-9_6<\/a><\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>import { doc, setDoc, Timestamp ,collection } from &quot;firebase\/firestore&quot;;\n\/\/import\u3059\u308b\u95a2\u6570\u306f\u30ab\u30f3\u30de\u533a\u5207\u308a\u3067\u5fc5\u8981\u306a\u3060\u3051\u8aad\u307f\u8fbc\u3081\u308b\n\n\nconst ref = doc(collection(db, &quot;users&quot;, `${user.uid}`, &quot;notice&quot;));\n\/\/\u30b5\u30d6\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3078\u306e\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9\n\nsetDoc(ref, {\n              link: &quot;Tutorial&quot;,\n              message: &quot;\u3088\u3046\u3053\u305d\uff01\u30bf\u30c3\u30d7\u3067\u4f7f\u3044\u65b9\u3092\u78ba\u8a8d&quot;,\n              time: Timestamp.fromDate(new Date()),\n            });\n\/\/setDoc\u3067\u30c7\u30fc\u30bf\u3092\u8ffd\u52a0<\/code><\/pre><\/div>\n\n\n\n<p>collection\u306e\u4e2d\u306f\u3001(db,collection,document,collection,(document))\u306e\u9806\u306b\u306a\u3063\u3066\u3044\u308b\u3002<br>\u516c\u5f0f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u300c\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3068\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u304c\u4ea4\u4e92\u306b\u306a\u308b\u3088\u3046\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u300d<\/p>\n\n\n\n<p>\u5225\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u540c\u3058\u30b5\u30d6\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306b\u540c\u6642\u306b\u8ffd\u52a0\u3057\u305f\u3044\u3068\u304d\u306f\u3001\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9\u30922\u500b\u4f5c\u308b\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>const ref = doc(collection(db, &quot;users&quot;, `${user.uid}`, &quot;notice&quot;));\/\/\u30ea\u30d5\u30a1\u30ec\u30f3\u30b91\nconst ref2 = doc(collection(db, &quot;users&quot;, `${user.uid}`, &quot;notice&quot;));\/\/\u30ea\u30d5\u30a1\u30ec\u30f3\u30b92\n\nsetDoc(ref, {\n              link: &quot;Tutorial&quot;,\n              message: &quot;\u3088\u3046\u3053\u305d\uff01\u30bf\u30c3\u30d7\u3067\u4f7f\u3044\u65b9\u3092\u78ba\u8a8d&quot;,\n              time: Timestamp.fromDate(new Date()),\n            });\nsetDoc(ref2, {\n              link: &quot;Openroom&quot;,\n              message: &quot;\u30eb\u30fc\u30e0\u3092\u4f5c\u308d\u3046&quot;,\n              time: Timestamp.fromDate(new Date()),\n            });<\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u88dc\u8db3<\/h4>\n\n\n\n<ol><li>import\u3059\u308b\u95a2\u6570\u306f<strong>\u30ab\u30f3\u30de\u533a\u5207\u308a<\/strong>\u3067\u5fc5\u8981\u306a\u3060\u3051\u8aad\u307f\u8fbc\u3081\u308b<\/li><li>\u540c\u3058\u30da\u30fc\u30b8\u3067\u540c\u3058\u95a2\u6570\u3092\u8aad\u307f\u8fbc\u3080\u3068\u30a8\u30e9\u30fc\u306b\u306a\u308b<\/li><li>\u540c\u3058\u30e2\u30b8\u30e5\u30fc\u30eb\u304b\u3089\u5225\u306e\u95a2\u6570\u3092\u8aad\u307f\u8fbc\u3080\u306e\u306f\u554f\u984c\u306a\u3057<\/li><\/ol>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>import { doc, setDoc, Timestamp ,collection } from &quot;firebase\/firestore&quot;;\n\/\/1.import\u3059\u308b\u95a2\u6570\u306f\u30ab\u30f3\u30de\u533a\u5207\u308a\u3067\u5fc5\u8981\u306a\u3060\u3051\u8aad\u307f\u8fbc\u3081\u308b\n\n\nimport { doc, setDoc, Timestamp } from &quot;firebase\/firestore&quot;;\nimport { doc, setDoc, collection } from &quot;firebase\/firestore&quot;;\n\/\/2.\u540c\u3058\u30da\u30fc\u30b8\u3067\u540c\u3058\u95a2\u6570\u3092\u8aad\u307f\u8fbc\u3080\u3068\u30a8\u30e9\u30fc\u306b\u306a\u308b\n\n\nimport { doc, setDoc, Timestamp } from &quot;firebase\/firestore&quot;;\nimport { collection } from &quot;firebase\/firestore&quot;;\n\/\/3.\u540c\u3058\u30e2\u30b8\u30e5\u30fc\u30eb\u304b\u3089\u5225\u306e\u95a2\u6570\u3092\u8aad\u307f\u8fbc\u3080\u306e\u306f\u554f\u984c\u306a\u3057<\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u30c7\u30fc\u30bf\u306e\u53d6\u5f97<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u30c7\u30fc\u30bf\u3092\u4e00\u56de\u53d6\u5f97\u3059\u308b<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\"><a rel=\"noreferrer noopener\" href=\"https:\/\/firebase.google.com\/docs\/firestore\/query-data\/get-data?hl=ja#get_a_document\" target=\"_blank\">https:\/\/firebase.google.com\/docs\/firestore\/query-data\/get-data?hl=ja#get_a_document<\/a><\/pre>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>import { doc, getDoc } from &quot;firebase\/firestore&quot;;\n\n\n\/\/1.\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306b\u8f09\u3063\u3066\u308b\u3084\u3064\nconst docRef = doc(db, &quot;cities&quot;, &quot;SF&quot;);\/\/\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9\u306e\u4f5c\u6210\nconst docSnap = await getDoc(docRef);\/\/\u53d6\u5f97\u3092\u30ea\u30af\u30a8\u30b9\u30c8\n\n\/\/docSnap\u306b\u7d50\u679c\u304c\u5165\u308b\u2193\nif (docSnap.exists()) {\n  console.log(&quot;Document data:&quot;, docSnap.data());\n} else {\n  \/\/ doc.data() will be undefined in this case\n  console.log(&quot;No such document!&quot;);\n}\n\n\/\/2.async await \u304c\u4f7f\u3048\u306a\u3044\u5834\u5408\nconst docRef = doc(db, &quot;cities&quot;, &quot;SF&quot;);\/\/\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9\u306e\u4f5c\u6210\n\n\/\/\u53d6\u5f97\u3092\u30ea\u30af\u30a8\u30b9\u30c8\ngetDoc(docRef).then((docSnap)=&gt; {\n  \/\/docSnap\u306b\u7d50\u679c\u304c\u5165\u3063\u3066\u3044\u308b\n  docSnap.data().id \/\/\u3053\u308c\u3067field\u306eid\u304c\u53d6\u308c\u308b\n});<\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u5168\u3066\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u53d6\u5f97<\/h3>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>import { collection, getDocs } from &quot;firebase\/firestore&quot;;\n\n\n\/\/1.\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306b\u8f09\u3063\u3066\u308b\u3084\u3064\nconst querySnapshot = await getDocs(collection(db, &quot;cities&quot;));\nquerySnapshot.forEach((doc) =&gt; {\n  \/\/ doc.data() is never undefined for query doc snapshots\n  console.log(doc.id, &quot; =&gt; &quot;, doc.data());\n});\n\n\/\/2.async await \u304c\u4f7f\u3048\u306a\u3044\u5834\u5408\nconst querySnapshot = getDocs(collection(db, &quot;cities&quot;));\nquerySnapshot.then((data)=&gt;{\/\/data\u306b\u7d50\u679c\u304c\u5165\u3063\u3066\u3044\u308b\n  data.forEach((doc) =&gt; {\n  \/\/ doc.data() is never undefined for query doc snapshots\n  console.log(doc.id, &quot; =&gt; &quot;, doc.data());\n  });\n});<\/code><\/pre><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u66f8\u304d\u65b9\u304c\u65b0\u3057\u304f\u306a\u3063\u3066\u3066\u308f\u304b\u3089\u3093\uff01\uff01\uff01\u306e\u3067\u5fc5\u8981\u306a\u90e8\u5206\u3060\u3051\u81ea\u5206\u306a\u308a\u306b\u89e3\u91c8\u3057\u305f\u3082\u306e \u30c7\u30fc\u30bf\u306e\u8ffd\u52a0 \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u540d\u3092\u6307\u5b9a\u3057\u306a\u3044(\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u81ea\u52d5\u751f\u6210) https:\/\/firebase.google.com\/docs\/fires &#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[19,14,10],"tags":[],"_links":{"self":[{"href":"https:\/\/osora.ne0n.xyz\/blog\/wp-json\/wp\/v2\/posts\/685"}],"collection":[{"href":"https:\/\/osora.ne0n.xyz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/osora.ne0n.xyz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/osora.ne0n.xyz\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/osora.ne0n.xyz\/blog\/wp-json\/wp\/v2\/comments?post=685"}],"version-history":[{"count":6,"href":"https:\/\/osora.ne0n.xyz\/blog\/wp-json\/wp\/v2\/posts\/685\/revisions"}],"predecessor-version":[{"id":717,"href":"https:\/\/osora.ne0n.xyz\/blog\/wp-json\/wp\/v2\/posts\/685\/revisions\/717"}],"wp:attachment":[{"href":"https:\/\/osora.ne0n.xyz\/blog\/wp-json\/wp\/v2\/media?parent=685"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/osora.ne0n.xyz\/blog\/wp-json\/wp\/v2\/categories?post=685"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/osora.ne0n.xyz\/blog\/wp-json\/wp\/v2\/tags?post=685"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}