Java Android Firestore使用Uid显示用户数据

Java Android Firestore使用Uid显示用户数据,java,android,firebase,google-cloud-firestore,Java,Android,Firebase,Google Cloud Firestore,我正在尝试使用用户id在应用程序中显示用户数据以进行检索。 问题是这段代码会弹出第二个选项,即找不到引用用户的文档 String userUid = FirebaseAuth.getInstance().getCurrentUser().getUid(); DocumentReference documentReference = firebaseFirestore.collection("Users").document(userUid);

我正在尝试使用用户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"));
        }
    });
登录用户的密码为:ZXJVBNC5UODCC5729SN

getUid()找到的是:njo4FfZNQLfHktDRzwfYMjmLO6G2


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

因为登录用户的Uid与数据库中的Uid不同,所以您会得到预期的行为。您无法从实际不存在的节点获取某些内容。最有可能的情况是,您之前使用了该用户,并且不知何故仅从Firebase控制台删除了该帐户,并将相应的数据保留在数据库中。最简单的解决方案是使用当前UID再次写入数据。在这之后,您的代码将正常工作。

如果您尝试记录
userUid
的值,那么在logcat中会打印出什么?还请编辑您的问题,并将您的数据库结构添加为JSON文件或至少是屏幕截图。我编辑了我的问题以添加您需要的所有内容。根据您的回答,我尝试重新创建一个用户,以查看我是否确实以某种方式修改了旧的用户,但这并没有改变任何内容,问题仍然是一样的……在这种情况下,请给我看数据库中的新UID和log语句的结果,看它是否匹配,对吗?在新的搜索之后,我注意到在身份验证部分,它确实是正确的UID,就像我请求UID时找到的一样。因此,问题在于保存文档时没有使用正确的Uid。您的回答是正确的,只是我在代码中遗漏了一些内容,谢谢您的帮助!很高兴听到:)不客气,干杯!
D/Données de l'utilisateur: Pas de données trouvées njo4FfZNQLfHktDRzwfYMjmLO6G2