AngularFire2 Auth最佳实践

时间:2017-05-30 22:27:50

标签: javascript firebase promise observable angularfire2

我有一个关于使用angularFire2访问用户数据的一般问题。这可能只是关于使用可观察或承诺的问题。

Firebase文档建议访问用户数据,如下所示:

console.log( firebase.auth().currentUser ) //retrieved user data

以上效果很好,但在v4.0的angularFire2文档中,建议使用 afAuth.authState

this.afAuth.authState.subscribe(auth => console.log( auth ) ) //retrieved data in observable

任何建议或解释都会很棒。我意识到observable绑定到新数据,但是如果我想在多个地方访问observable可以通过我的应用程序进行多次订阅吗?或者更好的方法是使用firebase.auth重新查询数据( )什么时候需要。此外,嵌套订阅的订阅开始变得非常复杂,仅使用firebase.auth()。currentUser并防止嵌套订阅会更好吗?

this.afAuth.authState.subscribe(auth => {
        if(auth) 
            this.uid = auth.uid;
            this.userProfileRef = db.object('/users/'+auth.uid,{ preserveSnapshot: true });
            this.userProfileRef.subscribe(snapshot => {
              console.log(snapshot.val() ); //ugh complexity
            });
        }
 });

this.uid = firebase.auth().currentUser.uid;
this.userProfileRef = db.object('/users/'+auth.uid,{ preserveSnapshot: true });
this.userProfileRef.subscribe(snapshot => {
 console.log(snapshot.val() ); 
});

0 个答案:

没有答案