登录时如何获取当前用户密钥

时间:2017-08-03 03:17:54

标签: javascript firebase ionic-framework firebase-realtime-database

如何获取已登录的当前用户密钥。我尝试过这种方式。

openMapPage()
  {
   var ref = firebase.database().ref("request");
    ref.once("value").then((snapshot) => { // <------ Here!
        var a = snapshot.exists();  // true
        var c = snapshot.hasChild("reqdetails"); // true
        var d = snapshot.child('reqdetails').exists();
        var requestsKey = snapshot.key;
        var requestsValue = snapshot.val();

          this.afAuth.authState.take(1).subscribe(data =>{
      this.profileData = this.af.object(data.uid);
                console.log(this.profileData);
    })
        snapshot.forEach((childSnapshot) => { // <------ And here!
            var requestKey = childSnapshot.key;
            var requestValue = childSnapshot.val();

            var reqdetails = requestValue.reqdetails;
            if (reqdetails) {
                this.data = requestKey;
                console.log(this.data);
                //this.arr.push(requestKey);
                //console.log(this.arr);

                 this.getRequest = this.angFire.list('request', {
                   query: {
                   orderByChild: 'reqdetails',
                   startAt: 'reqdetails'
            }
         }) 


            }
        });

    });     
  }

我试过让当前用户参与这部分代码:

 this.afAuth.authState.take(1).subscribe(data =>{
      this.profileData = this.af.object(data.uid);
                console.log(this.profileData);
    })

当我控制profileData的日志时,我得到了这个东西:

enter image description here

1 个答案:

答案 0 :(得分:0)

使用Javascript,当用户使用firebase登录或注销时,您可以获得onAuthStateChanged()回调。

要获取currentUser密钥,您可以使用:

firebase.auth().onAuthStateChanged(function(user) {
  if (user) {
    // User is signed in.
    var currentUserKey = firebaseAuth.currentUser.uid
  } else {
    // No user is signed in.
  }
});

我希望它会有所帮助。

有关详细信息,请参阅:Firebase Auth