2017-12-26 7 views
0

リアルタイムデータベースに書き込むときに、現在の認証されたユーザーと現在のサーバーのタイムスタンプを保存しようとしています。いないクライアントからではなく、サーバー、ここでfirebase - リアルタイムデータベースに書き込むときに、現在の認証されたユーザーと現在のサーバーのタイムスタンプを保存します。

からの例では、私が保存したいものを私の思考

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はする必要がありますサーバーから提供

クラウド機能は問題を解決する可能性がありますが、私はwonderiですngの私が正しく理解している場合

答えて

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 
    }); 
+0

なし、IドンクライアントからtimeとuserIdを設定したくありません。あなたの時間に感謝します – Ali

+1

@Ali:上記のコードは、サーバー側のタイムスタンプを設定します。クライアントからそのようなタイムスタンプを設定する唯一の方法です。 –

関連する問題