Javascript 无法从fire base访问node.js中设置为当前用户电子邮件地址的文档名

Javascript 无法从fire base访问node.js中设置为当前用户电子邮件地址的文档名,javascript,node.js,firebase,google-cloud-functions,Javascript,Node.js,Firebase,Google Cloud Functions,从flatter应用程序中将文档名设置为当前用户电子邮件地址如何访问node.js文件中的相同文档名 来自fire base code中颤振应用程序的数据集 FirebaseAuth.instance.currentUser().then((user){ Firestore.instance .collection('cards') .document(user.email) .collection('tokens').add({ 'email':

从flatter应用程序中将文档名设置为当前用户电子邮件地址如何访问node.js文件中的相同文档名

来自fire base code中颤振应用程序的数据集

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}')......
我可以获取文档名
数据
,但只能获取静态文档名 但是,如果我将其更改为
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代码片段是如何创建一个云函数来侦听集合中文档的更改。您可能需要的是允许您访问文档的。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格式,即使用户更改其电子邮件地址,也将保持不变。

我可以访问所有这些文档名称,而无需管理员SDK(我正在静态设置),但无法获取设置为user.email或user.uid的文档?我还是很困惑。当我从flatter应用程序中设置数据(如文档名或任何其他静态名称)时,我就可以获得数据收集。我更新了问题,请检查。