0

データベース内の特定の値を変更するコードを記述しました。私は24時間ごとにそれを起動するためにcron-jobsを使いますが、私のコードには何か問題があります。Firebase HTTP Trigger Cloudリアルタイムデータベースでユーザの値を変更する機能

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 
    } 
+0

クラウド機能のタイミングに管理SDK

Here's a videoの使用方法を示す

Here's a video「が、私のコードに何か問題がありますか」?機能が動作しないか、cronジョブが起動しません。最初の場合、どのようなエラーが発生しますか? –

答えて

1

あなたが探している結果を持たないHTTPトリガーの中にリアルタイムデータベーストリガーを入れようとしているようです。データベーストリガを使用する代わりに、Firebase Admin SDKを使用して、HTTPトリガ内からデータベースにアクセスしてください。あなたのコードで

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

を追加し、データベースにアクセスするための参照を使用しています。

Admin SDKのドキュメントhereを参照してください。

Hereは、クラウド機能のいくつかのサンプルで、一部はAdmin SDKを示しています。あなたは何を意味しています

関連する問題