如何根据Firebase数据库中用户的电子邮件价值检索密钥的值?

时间:2018-02-27 20:41:37

标签: firebase firebase-realtime-database

This is how my database looks like.

由于我是firebase的新手,请帮助我。这里的问题是,电子邮件是另一个名为user_profile的密钥的一部分,该密钥在用户的uid(作为密钥)下退出。

2 个答案:

答案 0 :(得分:0)

使用此代码,您可以在UID中收到您的电子邮件

 DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
    DatabaseReference idRef = rootRef.child(uid).child("user_profile").child("email");
    ValueEventListener eventListener = new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
          String email  = datasnapshot.getValue(String.class);
          Log.e("email is:",""+email);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {}
    };

记住,要获得uid,您必须声明mAuth

private FirebaseAuth mAuth;

mAuth = FirebaseAuth().getInstance();

String uid = mAuth.getCurrentUser().getUid();< ----此行将重新调整uid

答案 1 :(得分:0)

使用数据库查询相当容易。在这种情况下,您有一个需要匹配值的属性user_profile/email。所以:

var ref = firebase.database().ref('users');
var query = ref.orderByChild('user_profile/email').equalTo('issidhant.k@gmail.com');
query.once('value', function(snapshot) {
  snapshot.forEach(function(user) {
    console.log(user.key+': '+user.val().user_profile.displayName);
  });
});

要了解详情,请阅读Firebase documentation on sorting and filtering data