簡體   English   中英

如何使用 Javascript 從雲 Function 更新實時數據庫?

[英]How to update Realtime Database from Cloud Function using Javascript?

我正在為我的 iOS 應用程序創建一個雲 function - 我希望它在用戶注冊時創建一個 Stripe 客戶(這工作正常),但我無法在 ZC1C425268E68384F145A 中將任何數據設置到我的實時數據庫中。

這是我最近的嘗試

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 客戶創建成功~但我的實時數據庫根本沒有更新。 我試過用很多不同的方式重寫這條線,但沒有任何效果。

編輯:我正在嘗試更新我的實時數據庫,但沒有進行更新(嘗試將值從“否”更改為“是”。我在日志中沒有收到任何錯誤,但沒有進行更新。

我建議仔細檢查 Firebase 控制台中的功能日志中是否確實存在錯誤。 我根本不希望這段代碼起作用:

return admin.database().collection('users').doc(user.uid).set({registeredStripe: "yes"});

admin.database()適用於實時數據庫,但“收集”和“文檔”是 Firestore 方法。 此代碼應生成一個錯誤,指出“集合”不是一種方法。 Firestore 和實時數據庫是完全不同的數據庫,具有不同的 API。

如果你想更新實時數據庫,你應該使用它自己的 API。 您將使用諸如“child”之類的方法來指示要更改的數據庫中的位置。 請參閱文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM