为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用Javascript从云函数更新实时数据库?

如何使用Javascript从云函数更新实时数据库?

30秒到达战场 2022-08-27 10:57:30
我正在为我的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。您将使用“子”等方法来指示数据库中要更改的位置。请参阅文档


查看完整回答
反对 回复 2022-08-27
  • 1 回答
  • 0 关注
  • 100 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信