2017-12-26 18 views
0

실시간 데이터베이스에 쓸 때 현재 인증 된 사용자 및 현재 서버 타임 스탬프를 저장하려고합니다.firebase - 실시간 데이터베이스에 쓸 때 현재 인증 된 사용자 및 현재 서버 타임 스탬프를 저장합니다.

comments : { 
    "-L1CLZlQ9AAtAYyNanqM" : { 
     comment : 'Hello World' , 
     time : 12512623463    // CURRENT FIREBASE SERVER TIME 
     userId : "-M1CB342845tAYyNanqM" // CURRENT AUTHENTICATED USER ID 
    } , 
    ... 
} 

시간userId를해야한다 :

let comment = firebase.database().ref().child(`comments/${postId}`).push(); 
comment.set({comment: 'Hello World'}); 

제가 저장하려는 것은 클라이언트 만 서버 여기

에서하지 내 생각을 설명하기 위해 예입니다 서버에서 제공

구름 기능으로 문제가 해결 될 수 있지만 궁금합니다. 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

아니, 돈 클라이언트로부터 time과 userId를 설정하고 싶지 않습니다. 하지만 시간 내 주셔서 감사합니다. – Ali

+1

@Ali : 위 코드는 서버 측 타임 스탬프를 설정합니다. 이는 클라이언트에서 타임 스탬프를 설정하는 유일한 방법입니다. –