3 回答

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
這對(duì)我有用:
//in Class definition.
private FirebaseFirestore firebaseFirestore;
private FirebaseAuth firebaseAuth;
private FirebaseUser currentUser;
//Declareation in Oncreate()
currentUser = firebaseAuth.getCurrentUser();
userId = currentUser.getUid();
private void setUserName() {
/*
Assign the value of profile_name_of field in the document of the current user
under Users collection.
pre:---.
post: changes the value of the instance variable of username.
*/
firebaseFirestore.collection("Users").document(userId)
.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
DocumentSnapshot documentSnapshot = task.getResult();
if(documentSnapshot.exists()){
List<String> list = new ArrayList<>();
Map<String, Object> map = documentSnapshot.getData();
if(map != null){
for(Map.Entry<String, Object> entry : map.entrySet()){
list.add(entry.getValue().toString());
}
username = list.get(0);
Toast.makeText(context,
"username"+username,
Toast.LENGTH_LONG).show();
}
}
}
});
}

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊
顯然您正在使用未實(shí)例化的變量來(lái)獲取數(shù)據(jù)。嘗試更改它:
protected void getUser() {
FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();
user_id = currentUser.getUid();
....
}

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊
tol獲取用戶的uid,只需使用以下幾行代碼:
FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
if (firebaseUser != null) {
String uid = firebaseUser.getUid(); //Do what you need to do with your uid
}
firebaseUser檢查無(wú)效性也很重要。
添加回答
舉報(bào)