在 flutter 应用程序中将文档名称设置为当前用户的电子邮件地址,我如何访问 node.js 文件中的相同文档名称。
fire base 代码中的 flutter 应用程序的数据集
FirebaseAuth.instance.currentUser().then((user){
Firestore.instance
.collection('cards')
.document(user.email)
.collection('tokens').add({
'email': 'test@email.com',
'
}).then((val){
});
});
我想在 nodejs 文件中获取它,如何在这一行中访问?我应该在 user.email 中写什么来访问文档名称。我需要在 node.js 中检查用户身份验证吗?
exports.StripeSource =functions.firestore.document('cards/{user.email}/tokens/{tokenid}')......
这样做我可以获得文档名称 data
但只有静态文档名称
但如果我将其更改为 user.email
或 user.uid
(根据当前用户的电子邮件地址或用户 ID 更改,所有用户都不相同)所以我明白如何才能我得到了这种类型的文档名称。
exports.StripeSource =functions.firestore.document('cards/{data}/tokens/{tokenid}').onCreate(async (tokenSnap,context) => {
const user_id = context.params.data;
console.log('Document name:', user_id);....
..
}
最佳答案
您发布的 Node.js 片段将是您将如何创建云函数来监听集合中文档的更改。您可能想要的是 Admin SDK这将使您可以访问文档。该 SDK 的工作方式与客户端 SDK 非常相似:
const admin = require('firebase-admin');
admin.initializeApp({...});
const snap = await admin.firestore()
.collection('cards').doc(email)
.collection('tokens').doc(tokenId).get();
console.log(snap.data());
另外请注意,除非您有特殊原因,否则我建议从用户的 uid
而不是 email
中键入文档。这是一种更友好的 URL 格式,即使用户更改了他们的电子邮件地址也会保持不变。
关于javascript - 无法访问由 fire base 的当前用户电子邮件地址设置的 node.js 中的文档名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59217139/