java - 在 Firebase Android 中将子值转换为 Java 对象

标签 java android firebase firebase-realtime-database

我已阅读 question关于如何在 Firebase 中利用其子级获取值(value)。

enter image description here

现在我想将该值转换为 Java 对象。我可以这样做吗?如果可以,我该如何实现?

最佳答案

Now I want to convert that value into a Java object. Can I do that?

当然可以!其实这个问题我也回答过。因此,要解决这个问题,首先需要创建两个 POJO(模型)类:

class MailId {
    public String email, name;

    MailId() {}
}

还有

class MailText {
    public String subject, title;

    MailText() {}
}

要获取该数据作为 MailIdMailText 类的对象,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference newRef = rootRef.child("new");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.child("mailID").getChildren()) {
            MailId mailId = ds.getValue(MailId.class);
            Log.d("TAG", mailId.email + " / " + mailId.name);
        }
        for(DataSnapshot ds : dataSnapshot.child("mailText").getChildren()) {
            MailText mailText = ds.getValue(MailText.class);
            Log.d("TAG", mailText.subject + " / " + mailText.title);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
    }
};
newRef.addListenerForSingleValueEvent(valueEventListener);

关于java - 在 Firebase Android 中将子值转换为 Java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57509024/

相关文章:

java - Spring Boot JDBC-Test DB Connection Leak 运行所有测试时

java - 我需要同步这个吗

java - 让 TaskCompletionSource 正常工作(Firestore 的 Android 任务)

node.js - 如何确保在 ElasticSearch Bonsai 免费实例中使用 Firebase FlashLight 索引每个对象

java - 如何在 Firebase 中获取整个对象?

java - 如何在 webdriver 中使用 $x ("//input[@id=' searchInput']") xpath 因为它给出了完成语句的错误

java - 递归乘法的正确思考方式?

android - 从 phoneBook 我怎样才能在 android 应用程序中获取联系电话和照片

android - 如何创建显示星期日期的周历

android - 如何在 RelativeLayout 中将一个 View 放置在另一个 View 之上?