【问题标题】:How to assign Class to data retrieved from Firestore?如何将 Class 分配给从 Firestore 检索的数据?
【发布时间】:2023-03-29 05:17:02
【问题描述】:

这是我从 Firestore 检索数据的代码。

    private FirebaseFirestore db = FirebaseFirestore.getInstance();
    private DocumentReference dataRef = db.collection("users").document(currentUser);

    dataRef.get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
            @Override
            public void onSuccess(DocumentSnapshot documentSnapshot) {
                if(documentSnapshot.exists()){
                    navUserName.setText(documentSnapshot.getString("fullname"));
                    navGmail.setText(documentSnapshot.getString("email"));
                } else {
                    Log.i("current user data: ","Not Found");
                }
            }
        });

我想先将此数据分配给类用户对象,然后再从类用户对象中检索它。我该怎么做?

【问题讨论】:

  • 您分享的代码有效吗?你有你的用户的 POJO 类吗?
  • 我知道这是有效的。但是如何将数据直接分配给类。
  • 你的用户有 POJO 类吗?
  • 我不知道什么是 pojo 类。但我有一个普通的“用户”类。我通过以下方式上传数据。 FirebaseFireStore db = FirebaseFireStore.getInstance(); db.collection("users").document(useruid).set(user);.集合中的用户是用户类的对象。

标签: java firebase firebase-authentication google-cloud-firestore


【解决方案1】:

根据您的评论,如果您使用User 对象将数据添加到数据库中,要取回数据,您可以使用以下代码行将DocumentSnapshot 对象映射到User 对象:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DocumentReference dataRef = db.collection("users").document(uid);
dataRef.get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
    @Override
    public void onSuccess(DocumentSnapshot documentSnapshot) {
        User user = documentSnapshot.toObject(User.class);
        Log.d(TAG, user.getFullname());
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-03
    • 1970-01-01
    • 2020-09-09
    • 2021-10-26
    • 2021-01-18
    • 2018-11-24
    • 2020-01-13
    相关资源
    最近更新 更多