我希望在使用云功能时从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以未定义的形式返回。尝试其他一些建议的方法没有任何结果。
答案 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