Android Firestore显示带有Uid的用户数据



我试图在使用用户id检索的应用程序中显示用户数据。问题是这段代码弹出了第二个选项,即没有找到指向用户的文档。

String userUid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DocumentReference documentReference = firebaseFirestore.collection("Users").document(userUid);
documentReference.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
DocumentSnapshot document = task.getResult();
if (document.exists()) {
Log.d(TAG, "Données : " + document.getData());
} else {
Log.d(TAG, "Pas de données trouvées");
}
} else {
Log.d(TAG, "Une erreur est survenue ", task.getException());
}
}
});
documentReference.addSnapshotListener(getActivity(), new EventListener<DocumentSnapshot>() {
@Override
public void onEvent(@Nullable DocumentSnapshot documentSnapshot, @Nullable FirebaseFirestoreException e) {
pseudo.setText(documentSnapshot.getString("Pseudo"));
name.setText(documentSnapshot.getString("Name"));
surname.setText(documentSnapshot.getString("Surname"));
mail.setText(documentSnapshot.getString("Mail"));
age.setText(documentSnapshot.getString("Age"));
}
});

如果不是"userUid"在DocumentReference中,我直接使用Uid写(例如:ZxjVbnC5uodcQC5729sn),它工作,但与变量它不。

编辑1

下面是数据库的屏幕:

数据库如果我在logcat中显示它,我意识到检索到的id不是与用户对应的id。

D/Données de l'utilisateur: Pas de données trouvées njo4FfZNQLfHktDRzwfYMjmLO6G2

当前登录用户的id为:ZxjVbnC5uodcQC5729sn

getUid()找到的是:njo4FfZNQLfHktDRzwfYMjmLO6G2

我不明白为什么这没有显示正确的Uid…

由于登录用户的UID与数据库中的UID不同,因此可以得到预期的行为。你不能从一个根本不存在的节点得到什么。最有可能的是,您以前使用过该用户,但不知何故,您只从Firebase控制台删除了该帐户,并将相应的数据留在了数据库中。最简单的解决方案是使用当前UID再次写入数据。在那之后,你的代码就可以工作了。

相关内容

最新更新