【发布时间】:2017-07-16 14:38:50
【问题描述】:
ArrayList<ListingModel> list = new ArrayList<ListingModel>();
list.add(model);
list.add(model2);
list.add(model3);
list.add(model4);
for (ListingModel m : list) {
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("node");
myRef.push().setValue(m);
}
我正在尝试将 4 个对象从 android 应用程序保存到 firebase 数据库。所以我使用循环将数据存储到节点中。它应该创建 4 个具有自动 ID 的不同子对象并将对象存储在那里。但它只将最后一个模型存储在一个唯一的 id 中,如下图所示:
如何保存所有四个具有唯一 ID 的对象(列表中的数据)?
【问题讨论】:
-
保持在循环外初始化引用:` FirebaseDatabase database = FirebaseDatabase.getInstance(); DatabaseReference myRef = database.getReference("node"); for (ListingModel m : list) { myRef.push().setValue(m); }`
-
即使我在循环外实例化引用,结果也相同。 @JerinAMathews
-
将
CompletionListener添加到setValue()以查看是否有任何写入失败。您是否对node的孩子有可能拒绝前三个模型的安全规则?我运行了您的代码,但无法重现您的结果。 -
是的@BobSnyder 上面的代码没有错误。我的错。请参阅下面的答案。
标签: android firebase firebase-realtime-database