我正在为我的iOS应用程序创建一个云函数 - 我希望它在用户注册时创建一个Stripe客户(这可以正常工作),但我无法在该函数中将任何数据设置为我的实时数据库。这是我的最新尝试const functions = require('firebase-functions')const admin = require('firebase-admin')admin.initializeApp(functions.config().firebase);const stripe = require('stripe')(functions.config().stripe.testkey)//when user is created: //1.create user with Stripe//2.update users/user.uid/registeredStripe: "no" value to "yes"exports.createStripeCustomer = functions.auth.user().onCreate((user) => { return stripe.customers.create({ email: user.email }).then((customer) => { return admin.database().collection('users').doc(user.uid).set({registeredStripe: "yes"}); });});Stripe 客户已成功创建 ~ 但我的实时数据库根本没有更新。我尝试过以许多不同的方式重写这行,但没有任何效果。编辑:我正在尝试更新我的实时数据库,但没有进行任何更新(尝试将值从“否”更改为“是”。我在日志中没有收到任何错误,但未进行任何更新。
1 回答
慕桂英3389331
TA贡献2036条经验 获得超8个赞
我建议仔细检查Firebase控制台中的函数日志中是否确实存在错误。我根本不期望这段代码工作:
return admin.database().collection('users').doc(user.uid).set({registeredStripe: "yes"});
admin.database()
适用于实时数据库,但“集合”和“文档”是Firestore方法。此代码应生成一个错误,指出“集合”不是一个方法。Firestore和Realtime Database是完全不同的数据库,具有不同的API。
如果要更新实时数据库,则应使用其自己的 API。您将使用“子”等方法来指示数据库中要更改的位置。请参阅文档。
添加回答
举报
0/150
提交
取消