我可以在同一个onDataChange函数中获取2个不同类的值吗

时间:2018-10-03 09:28:13

标签: android firebase firebase-realtime-database

您好我想在同一个DataSnapshot中获得2个不同类模型的值吗?

这是一个例子

 myDB.addValueEventListener(new ValueEventListener() {  
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                Model_1 m1 = dataSnapshot.getValue(model_1.class); // First class
                Model_2 m2 = dataSnapshot.getValue(model_2.class); // Second class
            }
 });

这可能吗?

1 个答案:

答案 0 :(得分:0)

  

我可以在同一个onDataChange函数中获取2个不同类的值

答案是否定的!根据{{​​3}}类的官方文档:

  

DataSnapshot实例包含Firebase数据库位置中的数据。每次读取数据库数据时,您都会以DataSnapshot的形式接收数据。

如果使用模型类,则意味着您使用内置的JSON-to-POJO序列化器/解串器。因此,当您使用以下代码行时:

Model_1 m1 = dataSnapshot.getValue(model_1.class);

这意味着您可以将JSON中的数据反序列化为POJO类对象。这也意味着对象的类型只能是单一类型,即model_1类型。也不能是任何其他类型,例如model_2。它只能是model_1类型。因此,特定位置的DataSnapshot可以返回单一类型的对象。