Sel*_*ena 4 javascript firebase google-cloud-firestore
第一次寻求帮助。
\n在这个问题上卡住了一段时间。
\n// Database setup\nimport { initializeApp } from "firebase/app";\nimport { doc, setDoc, addDoc, collection, getFirestore, getDocs } from "firebase/firestore";\n// Your web app\'s Firebase configuration\n\n// Your web app\'s Firebase configuration\nconst firebaseConfig = {the data in here}\n\n// Initialize Firebase\nconst app = initializeApp(firebaseConfig);\nconst db = getFirestore(app);\n\n/**\n * Creates new eqipment\n */\nexport async function opretUdstyr(navn, type, note) {\n try {\n const uuid = generateUUID();\n let nyUdstyr = {\n navn: navn,\n type: type,\n note: note,\n status: "Tilg\xc3\xa6ngelig",\n fra: "",\n til: "",\n UUID: uuid\n };\n const docref = doc(collection(db, \'udstyr\'));\n await addDoc(docref, nyUdstyr);\n } catch (e) {\n console.error(e)\n }\n}\n
Run Code Online (Sandbox Code Playgroud)\n我收到的错误是:\nFirebaseError:文档引用无效。文档引用必须具有偶数个段,但 udstyr/hRjRFVcgr8Q2nCeHcNbp/8zTbs2qnPOMWW91JTksb 有 3 个。
\n尝试将方法更改为以下:
\nconst docref = doc(collection(db, \'udstyr\'));\nto\nconst docref = collection(db, \'udstyr\');\n
Run Code Online (Sandbox Code Playgroud)\n现在我收到一个我看不到的错误。老实说,不知道错误是什么。
\n我上面有这个函数,它的作用就像一个魅力:
\nexport async function getUdstyr() {\n const equipment = collection(db, \'udstyr\');\n const snapshot = await getDocs(equipment);\n const result = snapshot.docs.map(doc => doc.data());\n return result;\n}\n
Run Code Online (Sandbox Code Playgroud)\n所以这不属于错误收集的情况。
\n编辑:由于这里的数据不敏感,所以是整个控制器以及 firestore 数据库的外观。
\n\n具有 3 个工作的控制器 + 我的创建不起作用。
\n// Database setup\nimport { initializeApp } from "firebase/app";\nimport { doc, setDoc, addDoc, collection, getFirestore, getDocs } from "firebase/firestore";\n// Your web app\'s Firebase configuration\n\n// Your web app\'s Firebase configuration\nconst firebaseConfig = {\n apiKey: "AIzaSyAOW2ufaAdHaOvP82u5VwoNVZ9bgkzWh-E",\n authDomain: "booking-system-test-866d0.firebaseapp.com",\n projectId: "booking-system-test-866d0",\n storageBucket: "booking-system-test-866d0.appspot.com",\n messagingSenderId: "413437808749",\n appId: "1:413437808749:web:610bfaabb471329bbeef64"\n};\n\n// Initialize Firebase\nconst app = initializeApp(firebaseConfig);\nconst db = getFirestore(app);\n\n/**\n * Returns snapshot of all equipment\n */\nexport async function getUdstyr() {\n const equipment = collection(db, \'udstyr\');\n const snapshot = await getDocs(equipment);\n const result = snapshot.docs.map(doc => doc.data());\n return result;\n}\n\n/**\n * Returns snapshot of all bookings\n */\nexport async function getBookings() {\n const booking = collection(db, \'bookings\');\n const snapshot = await getDocs(booking);\n const result = snapshot.docs.map(doc => doc.data());\n return result;\n}\n\n/**\n * Returns snapshot of all rentings\n */\nexport async function getUdlaan() {\n const udlaan = collection(db, \'udlaan\');\n const snapshot = await getDocs(udlaan);\n const result = snapshot.docs.map(doc => doc.data());\n return result;\n}\n\n/**\n * Creates new eqipment\n */\nexport async function opretUdstyr(navn, type, note) {\n try {\n const uuid = generateUUID();\n let nyUdstyr = {\n navn: navn,\n type: type,\n note: note,\n status: "Tilg\xc3\xa6ngelig",\n fra: "",\n til: "",\n UUID: uuid\n };\n /*const docref = collection(db, \'udstyr\');\n await addDoc(docref, nyUdstyr);*/\n\n await addDoc(collection(db, \'udstyr\'), nyUdstyr);\n\n /*const docref = doc(collection(db, \'udstyr\'));\n const colref = collection(docref, \'subcollection\');\n await addDoc(colref, nyUdstyr);*/\n\n } catch (e) {\n console.error(e)\n }\n}\n
Run Code Online (Sandbox Code Playgroud)\n
Fra*_*len 13
Firestore 数据模型是:
所以文档的路径总是 gothecollection/thedocid
或thecollection/thedocid/nestedcollection/anotherdocid
等等。
在您的第一个代码片段中,您执行以下操作:
const docref = doc(collection(db, 'udstyr'));
await addDoc(docref, nyUdstyr);
Run Code Online (Sandbox Code Playgroud)
这里的第一行设置对文档的引用。但是第二行然后尝试将文档添加到该文档,根据我给出的模型这是不可能的。
文档只能存在于(子)集合中,不能直接存在于另一个文档中。因此,您可以使用以下方法将其添加到顶级集合中:
await addDoc(collection(db, 'udstyr'), nyUdstyr);
Run Code Online (Sandbox Code Playgroud)
或者,如果需要,您可以将文档添加到子集合中,如下所示:
const docref = doc(collection(db, 'udstyr'));
const colref = collection(docref, 'subcollection'));
await addDoc(colref, nyUdstyr);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11584 次 |
最近记录: |