Firebase一次附加完整列表

时间:2018-07-30 12:09:01

标签: firebase firebase-realtime-database kotlin append

我浏览了网络,并通过迭代snapshot.getchildren()通过了许多方法将整个列表附加到firebase数据库中。 我所说的基本上是遵循功能。

private void func (DatabaseReference ref, DataSnapshot snapshot) {
    for (DataSnapshot childSnapShot : snapshot.getChildren()) {

    ref.child(childSnapShot.getKey()).setValueAsync(childSnapShot.getValue());
    //or
    ref.push().setValueAsync(childSnapShot.getValue());
    }
}

但是我想知道一种方法,可以一次性添加整个快照子数据,而无需任何迭代。

ref.push().setValueAsync(snapshot.value());

上面的语句一次性添加数据,但在父层创建了一个额外的密钥。 而 ref.setValueAsync(snapshot.value());会覆盖整个Firebase,而不是附加。

是否可以一次添加整个列表?

1 个答案:

答案 0 :(得分:0)

可以。您可以获取snapshot对象,将其强制转换为HashMap对象,然后直接在引用上进行设置,而无需进行以下迭代:

private void func (DatabaseReference ref, DataSnapshot snapshot) {
    val map : HashMap<String, Any> = snapshot.getValue() as HashMap<String, Any>;
    ref.setValue(map);
}