Firebase推键未定义

时间:2018-02-04 08:29:59

标签: javascript firebase firebase-realtime-database google-cloud-functions

我希望在使用云功能时从firebase push命令获取密钥。

const params = {
    date: Date.now(),
    movie,
    movieId: movie.id,
    userId: user.uid,
    group: 'home',
    type: 'watched'
};

const pastRef = event.data.adminRef.root.child(`pastActivity/${user.uid}`);

var newPostRef = pastRef.push().set(params);

var postId = newPostRef.key;

console.log(postId); //undefined

然而,postId以未定义的形式返回。尝试其他一些建议的方法没有任何结果。

2 个答案:

答案 0 :(得分:3)

Reference.set()返回 void 承诺,该承诺在写入操作完成时解析。你无法得到它的关键。相反,将push()set(...)拆分为单独的语句,以便您可以捕获引用

var newPostRef = pastRef.push();
newPostRef.set(params);

var postId = newPostRef.key;

console.log(postId); //undefined

答案 1 :(得分:0)

如果不需要newPostRef变量,可以使用较短的版本

//var newPostRef = pastRef.push().set(params);
//var postId = newPostRef.key;

const newPostRefKey = pastRef.push(params).key
//this pushes the data and returns the key