【发布时间】:2021-04-08 15:18:00
【问题描述】:
我是 firebase 云功能的新手,在 firebase 功能中从 firestore 文档中 get() et set() 数据时遇到了一些麻烦。
这是我在 firebase 函数中尝试做的事情:
- 在firestore中创建新文档“doc1”时访问其数据;
- 访问与“doc1”的“user”字段关联的值;
- 此值属于“reference”类型,即指向另一个 Firestore 集合“col2/doc2”中的另一个文档的路径
- 使用此路径访问第二个文档“doc2”并检索属于此第二个文档的两个新值以将其添加到第一个文档“doc1”中;
- 最终目标是将属于“doc2”的“name”和“city”字段的值添加到“doc1”;
到目前为止,我在此尝试过,我确信 then() 链的语法和使用方面几乎没有问题,但主要思想是:
exports.addDataFromDoc2ToDoc1 = functions.firestore
.document('col1/{doc1Id}')
.onCreate((change, context) => {
const doc1Id = context.params.doc1Id
const doc1 = change.data()
const refToDoc2 = doc1.refField
const doc2Data = refToDoc2.get()
.then(function (documentSnapshot) {
if (documentSnapshot.exists) {
doc2Data = documentSnapshot.data()
return doc2Data
}
})
const doc1Name = doc2Data.doc1Name
const doc1City = doc2Data.doc1City
db.collection('col1')
.doc(doc1Id)
.set({
name: doc1Name,
city: doc1City
});
})
我从 firebase 文档开始: https://firebase.google.com/docs/functions/firestore-events
const admin = require('firebase-admin');
admin.initializeApp();
const db = admin.firestore();
exports.writeToFirestore = functions.firestore
.document('some/doc')
.onWrite((change, context) => {
db.doc('some/otherdoc').set({ ... });
});
如果有人可以帮助我完成这项任务,我将不胜感激,以及如何重组我的算法以提高效率?
非常感谢您的帮助和时间!
【问题讨论】:
标签: javascript node.js firebase google-cloud-firestore google-cloud-functions