【问题标题】:Best way to add data to a list in firebase database将数据添加到 firebase 数据库列表的最佳方法
【发布时间】:2021-01-28 03:45:10
【问题描述】:

我正在使用 Firebase 实时数据库,并试图为用户存储“动物”列表。

数据库结构:

我想要实现的是,例如:对于具有“Uuid”11111 的用户,会出现一个包含他正在发布的动物的列表。我的意思是:

Fireabase-root
    |
    --- 11111
          |
          --- animal1 
                |
                --- descripcion: "algo"
                |
                --- edad: "algo"
                |
                --- nombre: "algo"
                |
                --- raza: "algo"

           --- animal2
               ...
           --- animal3
               ...

我想知道最好的方法是什么。我认为孩子“animal1”是一个密钥,并且为每个生成的动物添加了一个不同的密钥,但我不知道这是否是解决它的最佳方法。我尝试使用我看到的生成密钥的推送方法,但我不知道如何使用它。我留下了我正在测试的东西。

DatabaseReference nombre = FirebaseDatabase.getInstance().getReference().child("Users").child("Animales").child(userId).push().child("nombre");
nombre.setValue("Leon");

【问题讨论】:

  • 我们通常根据要执行的查询来构建 Firestore 数据库。这些查询是什么?
  • 乍一看,代码看起来不错。运行这段代码,有什么问题?

标签: java android firebase firebase-realtime-database


【解决方案1】:

如果你创建的动物数量比用户数量少,那么你可以做的是,在根节点下,形成一个名为Animals的节点,每当创建一个新动物时,你就添加它在那里。

再次在根节点下形成一个名为users 的子节点,并在其中添加user1user2 等... 现在,每次用户与动物关联时,您都会在该用户下创建一个新的子节点,并仅添加来自 Animals 节点的动物名称。当您需要访问这些动物的属性时,只需参考来自Animals 的信息即可。

这使得树更短,我认为这是一种更优雅的方式,而不是为不同的用户重复创建相同的动物。

【讨论】:

    猜你喜欢
    • 2019-03-14
    • 2015-01-09
    • 2011-09-08
    • 1970-01-01
    • 2015-05-07
    • 2011-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多