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

我正在为我的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 客户已成功创建 ~ 但我的实时数据库根本没有更新。我尝试过以许多不同的方式重写这行,但没有任何效果。


编辑:我正在尝试更新我的实时数据库,但没有进行任何更新(尝试将值从“否”更改为“是”。我在日志中没有收到任何错误,但未进行任何更新。


30秒到达战场
浏览 101回答 1
1回答

慕桂英3389331

我建议仔细检查Firebase控制台中的函数日志中是否确实存在错误。我根本不期望这段代码工作:return admin.database().collection('users').doc(user.uid).set({registeredStripe: "yes"});admin.database()适用于实时数据库,但“集合”和“文档”是Firestore方法。此代码应生成一个错误,指出“集合”不是一个方法。Firestore和Realtime Database是完全不同的数据库,具有不同的API。如果要更新实时数据库,则应使用其自己的 API。您将使用“子”等方法来指示数据库中要更改的位置。请参阅文档。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript