我正在使用Javascript在Firebase中创建记录

/babies/{babyId}/users/{userId: true},并希望有一个函数在以下位置插入记录:/users/{userid}/babies/{babyId: true}

我有这个程序:

“使用严格”;

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

exports.onBabyCreated = functions.database.ref('/babies/{babyId}/users/{uid}').onWrite(event => {
    const usersRef = event.data.ref;
    const uid = event.params.uid;
    const babyId = event.params.babyId
    const original = event.data.val();
    console.log("uid: " + uid + " and " + babyId)
    console.log("Original data " + JSON.stringify(original))
    const obj = {}
    obj[babyId] = true
    return functions.database.ref('/users/{uid}/babies/{babyId}').push().set(obj)
});


我收到一条错误消息:functions.database.ref(...).push is not a function

为什么?这是我在javascript代码中添加数据的方法:

var dr = firebaseGetConnection().ref('babies/' + babyId + '/d').push()
dr.set(object.toJS())
return dr


这会创建一个值-为什么我不能以上面的相同方式创建它?其他一切正常,我有一个正确设置的babyId和uid,它记录了正确的消息。

最佳答案

我认为您正在寻找的是:

return admin.database().ref(`/users/${uid}/babies/${babyId}`).set(true);


functions SDK仅用于定义函数的触发器。要实际写入数据库,您需要Admin SDK。

08-16 06:41