簡體   English   中英

Firebase HTTP觸發雲功能可更改實時數據庫中的用戶值

[英]Firebase HTTP Trigger Cloud Function to change users' values in realtime database

因此,我編寫了代碼,應該更改數據庫中的某個值。 我會每24小時使用cron-jobs觸發一次,但是我的代碼出了點問題。

const functions = require('firebase-functions');

exports.resetPicksStatus = functions.https.onRequest((req, res) => {
  .ref('/users/{userId}')
  .onWrite(event => {
    const status = event.data.val()
    if (status.resetted) {
        return true
    }
    console.log("Resetting status for " + event.paramas.userId)
    status.resetted = true
    status.picksDone = resetToNil(status.picksDone)
    return event.data.ref.set(status)
  })
})

  function resetToNil(s) {
    var resetValue = s
    resetValue = resetValue.replace(/\b1\b/ig, "0")
    return resetValue
  }

似乎您正在嘗試將實時數據庫觸發器放入HTTP觸發器中,而不會獲得所需的結果。 代替使用數據庫觸發器,而使用Firebase Admin SDK從HTTP觸發器內部訪問數據庫。

在您的代碼中,添加

const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
const ref = admin.database().ref();

並使用ref訪問數據庫。

在此處查看Admin SDK文檔。

以下是一些Cloud Functions示例,其中一些示例顯示了Admin SDK。

這是展示如何使用Admin SDK 的視頻

這是有關計時雲功能的視頻

暫無
暫無

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

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