gpt4 book ai didi

javascript - 无法从 Firebase 中的集合访问特定字段

转载 作者:行者123 更新时间:2023-11-30 19:04:15 24 4
gpt4 key购买 nike

在编写 Cloud Function 时,我正在尝试从集合 cards 中访问 Email 字段。在 Firebase 中,我创建了一个新用户并从该用户登录,并使用 FirebaseAuth.instance.currentUser() 将该用户电子邮件地址保存到 Firebase 数据库,并创建了一个文档名称 .document(user.uid) 现在我在这段代码中访问 node.js 中的这个用户 id

const snapshot=await firestore.collection('cards').doc(context.params.userId).get();
const customerEmailaddress= snapshot.data().Email;

但我无法使用此代码访问该电子邮件。flutter 应用程序代码是将数据保存到 firebase 数据库

    class PaymentServices{
addCard(token){
FirebaseAuth.instance.currentUser().then((user){
Firestore.instance
.collection('cards')
.document(user.uid)
.collection('tokens').add({
'tokenid': token.tokenId,
'Email': user.email,
'customerid': 'new'
}).then((val){

});
print("saveedd");
});
}
}

云功能数据已成功插入 firebase 我只想从 firebase 访问它并将值存储在变量中,例如 customerEmailaddress

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
const firestore= admin.firestore();
const stripe = require('stripe')('sk_test_.........');
exports.StripeSource =functions.firestore.document('cards/{userid}/tokens/{tokenid}').onCreate(async (tokenSnap,context) => {
var customerdata;
const data=tokenSnap.after.data();

const snapshot=await firestore.collection('cards').doc(context.params.userId).get();
const customerEmailaddress= snapshot.data().Email;
const customerid= snapshot.data().custid;
customerdata = await stripe.customers.create({
email: customerEmailaddress,
})
});

简单示例user.id 的情况可能有问题,但这段代码也没有从快照变量中的 firebase 获取数据

 exports.StripeSource =functions.firestore.document('data/{card}/tokens/{tokenid}').onCreate(async (tokenSnap,context) => {
const snapshot = await firestore.collection('data').doc('card').get();
const customerEmailaddress= snapshot.data().Email;
const customer = stripe.customers.create({
email: customerEmailaddress,
})
.then((customer) => {
return stripe.customers.createSource(customer.id, {
source: 'tok_visa',
});
})
});

最佳答案

您确定要阅读的文档存在于所需 ID 下的集合“卡片”中吗?在 Firebase 控制台上检查它。

因为我认为您在保存数据代码时有错误:add() 直接用于集合,因此您插入了一个具有随机生成 ID 的文档。但是您有 ID,因此您应该在特定文档上使用 setData()

插入一个带有随机 ID 的新文档:

Firestore.instance.collection('cards').add({'Email': user.email});

插入具有已知 ID (user.uid) 的新文档:

Firestore.instance.collection('cards').document(user.uid).setData({'Email': user.email});

关于javascript - 无法从 Firebase 中的集合访问特定字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59158985/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com