Android 如何在特定节点上附加两个不同的哈希映射,而不替换Firebase中的其他哈希映射?

Android 如何在特定节点上附加两个不同的哈希映射,而不替换Firebase中的其他哈希映射?,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我想在一个特定的节点上附加两个不同的哈希映射对,一个键值都是String,另一个是String和Array List。但问题是,在Fire base数据库中,后面的一个正在替换第一个。我该怎么办?我不能一直用推 如果生成一个唯一的随机密钥,就可以实现这一点。这可以使用方法来完成 我们知道,在HashMap的情况下,它用新值替换旧值 当您想要更新数据时,不要忘记使用updatechildren方法,而不要直接在引用上使用setValue方法 希望有帮助。只需使用一张地图,而不是两张不同的地图。 然

我想在一个特定的节点上附加两个不同的哈希映射对,一个键值都是String,另一个是String和Array List。但问题是,在Fire base数据库中,后面的一个正在替换第一个。我该怎么办?我不能一直用推

如果生成一个唯一的随机密钥,就可以实现这一点。这可以使用方法来完成

我们知道,在HashMap的情况下,它用新值替换旧值

当您想要更新数据时,不要忘记使用updatechildren方法,而不要直接在引用上使用setValue方法

希望有帮助。

只需使用一张地图,而不是两张不同的地图。
然后将所有数据放在单个映射、字符串、数组列表中

对于节点的每个子节点,我不能使用push方法,我认为这不是一个好方法,而且我在运行时创建子节点,因此不需要更新子节点,原因很明显。请看我想要实现的代码。这会给你更好的想法。这是一个很好的方法来使用推方法。我建议您使用updatechildren方法。假设一个节点有10个子节点和键值对,我们需要推送每个子节点吗?虽然我知道如果两个键值都是字符串,我们可以对所有子项使用单个哈希映射,但这里的情况不同。在Firebase中,不能在同一引用上使用两种不同的类型。这是不可能的,一次使用:HashMap和第二个HashMap。您需要使用单个类型,这是第一个->HashMap。请记住,Firebase的结构是键和值成对的,每个节点都是一个对象,可以使用pojo类或映射进行升级。