我正在使用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。