繁体   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