您好我想在同一个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
}
});
这可能吗?
答案 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
可以返回单一类型的对象。