Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在firebase数据库中将数据添加到列表的最佳方法_Java_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Java 在firebase数据库中将数据添加到列表的最佳方法

Java 在firebase数据库中将数据添加到列表的最佳方法,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我正在使用Firebase实时数据库,并试图为用户存储“动画”列表 数据库结构: 我想要实现的是,例如:对于具有“Uuid”11111的用户,将显示一个包含他正在发布的动物的列表。我的意思是: Fireabase-root | --- 11111 | --- animal1 | --- descripcion: "algo"

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

数据库结构:

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

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

           --- animal2
               ...
           --- animal3
               ...
我想知道做这件事的最好方法是什么。我认为孩子“animal1”是一个键,每个生成的动物都会添加一个不同的键,但我不知道这是否是解决这个问题的最佳方法。我尝试使用我看到的生成密钥的push方法,但我不知道如何使用它。我留下了我正在测试的东西

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

如果与用户数量相比,您拥有的动物数量较少,那么您可以做的是在根节点下,形成一个名为
动物
的节点,并在创建新动物时将其添加到该节点

同样,在根节点窗体下有一个子节点,名为
users
,在其中添加
user1
user2
,等等。。。 现在,每次用户与动物关联时,您都会在该用户下创建一个新的子节点,并仅从
Animals
节点添加动物的名称。当您需要访问这些动物的属性时,只需参考
动物
中的信息即可


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

我们通常根据我们想要执行的查询构造Firestore数据库。这些查询是什么?代码乍一看很好。运行此代码时,出现了什么问题?