【发布时间】:2020-03-28 06:00:31
【问题描述】:
在编写云函数时,我试图访问集合 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;
但我无法使用此代码访问该电子邮件。 颤振应用程序代码是将数据保存到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 case 可能有问题,但此代码也没有从快照变量中的 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',
});
})
});
【问题讨论】:
标签: javascript firebase flutter google-cloud-firestore google-cloud-functions