Android 如何检索当前登录的用户数据,如联系人、电子邮件、姓名等
这是我的代码,我没有得到预期的输出Android 如何检索当前登录的用户数据,如联系人、电子邮件、姓名等,android,google-cloud-firestore,firebase-authentication,Android,Google Cloud Firestore,Firebase Authentication,这是我的代码,我没有得到预期的输出 FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); String userKey = user.getUid(); Log.d("UID : ",""+userKey); DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("users").chil
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
String userKey = user.getUid();
Log.d("UID : ",""+userKey);
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("users").child(userKey);
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
Log.v("temp","temp"); //for debugging
for(DataSnapshot ds : dataSnapshot.getChildren())
{
Log.v("Contact : ",""+ds.child("contact").getValue());
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
您向我们展示了一个云Firestore schmea,但您使用的代码从实时数据库获取数据。要解决此问题,应使用以下代码:
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference usersRef = rootRef.collection("users");
DocumentReference uidRef = usersRef.document(uid);
uidRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
DocumentSnapshot document = task.getResult();
if (document.exists()) {
String firstname = document.getString("firstname");
String lastname = document.getString("lastname");
String monthlybudget = document.getString("monthlybudget");
String emailid = document.getString("emailID");
String contact = document.getString("contact");
Log.d(TAG, firstname + "/" + lastname + "/" + monthlybudget + "/" + emailid + "/" + contact);
}
}
}
});
Vicky/Gupta/2500/vicky@gmail.com/8879835947