我一直在绕着这个简单的问题跑来跑去:我正在尝试读取Firestore文档中的字段。我正在寻找最简单的解决方案,使我可以使用const。
const userId = context.params.userId;
const customer = admin.firestore()
.collection('stripe_customers')
.doc(userId)
.collection('customer_info')
.data('customer_id');
云功能日志给了我这个
TypeError:admin.firestore(...)。collection(...)。doc(...)。collection(...)。data不是函数
与
相同的错误.data().customer_id;
这是我尝试过的另一种选择:
const customerDoc = admin.firestore()
.collection('stripe_customers')
.doc(userId)
.collection('customer_info')
.doc('customer_object');
const customer = customerDoc.get('customer_id');
console.log(customer);
使用此选项,控制台将记录未决的诺言。不确定如何使用它。
我经过了不计其数的尝试,并且用尽了所有文档。如果有人知道如何直接做到这一点,请告诉我。
答案 0 :(得分:3)
好的,几乎正确的答案是第二个答案。我只需要等待诺言。这是有兴趣的人的代码:
let customerRef = admin.firestore()
.collection('stripe_customers')
.doc(userId)
.collection('customer_info')
.doc('customer_object');
const customer = await customerRef.get()
.then(doc => {
return doc.data().customer_id;
})
.catch(err => {
console.log('Error getting document', err);
});