我知道通常是通过检查谁登录并使用此代码来完成的。
FirebaseUser user = mAuth.getCurrentUser();
if (user != null){
username.setText("Welcome " +user.getEmail());
}
但是在下面的代码中,我正在从Cloud Firestore的出勤集合中检索userUID,并希望使用它来获取与该userUID相关联的电子邮件。
这是我的代码:
public void viewAttendance(View v) {
attendanceRef2.orderBy("sessionID", Query.Direction.ASCENDING)
.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
String data = "";
for (QueryDocumentSnapshot documentSnapshot : queryDocumentSnapshots) {
Attendance attendance = documentSnapshot.toObject(Attendance.class);
String sessionID = attendance.getSessionID();
String attendanceUID = attendance.getUserUID();
data+= "Session ID: " +sessionID+ "\n" + "Student: " +attendanceUID+ "\n\n";
textViewData.setText(data);
}
}
});
}
答案 0 :(得分:0)
因此,您要说的是,您想从与会者的ID(即userId)中检索电子邮件地址。
如果是,
您无法从Firebase身份验证中检索所有经过身份验证的用户的数据,但是只能获取当前用户的数据。
要获取所有用户的数据,您需要使用Admin SDK
这是一个例子:
UserRecord userRecord = FirebaseAuth.getInstance().getUser(uid);
// See the UserRecord reference doc for the contents of userRecord.
System.out.println("Successfully fetched user data: " + userRecord.getUid());
您的情况是:
UserRecord userRecord = FirebaseAuth.getInstance().getUser(attendanceUID);
String email = userRecord.getEmail();
或者您可以使用列表存储它们。