我在写入实时数据库时尝试保存当前经过身份验证的用户和当前服务器时间戳。不是来自客户,而是来自服务器
这里有一个例子来说明我的想法
let comment = firebase.database().ref().child(`comments/${postId}`).push();
comment.set({comment: 'Hello World'});
我想要保存的是:
comments : {
"-L1CLZlQ9AAtAYyNanqM" : {
comment : 'Hello World' ,
time : 12512623463 // CURRENT FIREBASE SERVER TIME
userId : "-M1CB342845tAYyNanqM" // CURRENT AUTHENTICATED USER ID
} ,
...
}
应该从服务器提供时间和 userId
云功能可以解决问题,但我想知道是否还有其他方法可以解决这个问题答案 0 :(得分:2)
是的,如果我理解正确,你可以先获得uid
uid:string; // define globally
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// User is signed in.
this.uid = user.uid;
} else {
// User is signed out.
// ...
}
});
现在使用firebase.database.ServerValue.TIMESTAMP
来获取服务器时间
let comment = firebase.database().ref().child(`comments/${postId}`).push();
comment.set({
comment: 'Hello World',
time:firebase.database.ServerValue.TIMESTAMP,
userId:this.uid
});