Java 如何使用Firebase';s ServerValue.TIMESTAMP作为子项,并为其设置一个值

Java 如何使用Firebase';s ServerValue.TIMESTAMP作为子项,并为其设置一个值,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我想创建一个像这样的结构 "child1/1510612788766/": key: "quantity", value: 10 "child1/1510612788767/": key: "quantity", value: 4 "child1/1510612788768/": key: "quantity", value: 1 "child2/1510612788710/": key: "quantity", value: 6 "child2/1510612788756/": key: "q

我想创建一个像这样的结构

"child1/1510612788766/": key: "quantity", value: 10
"child1/1510612788767/": key: "quantity", value: 4
"child1/1510612788768/": key: "quantity", value: 1
"child2/1510612788710/": key: "quantity", value: 6
"child2/1510612788756/": key: "quantity", value: 8
但当我尝试时:

ref.child("child1").child(ServerValue.TIMESTAMP);
第二个子调用上存在编译错误:

Error:(59, 52) error: incompatible types: Map<String,String> cannot be converted to String
错误:(59,52)错误:不兼容的类型:无法将映射转换为字符串
我知道这个错误是因为该方法需要一个
Map
Map而不是时间戳的Map


但是我如何以这种方式存储ServerValue并为其设置值呢

这不是
ServerValue.TIMESTAMP
的用法

child()。这是数据库中节点的名称。它只能作为字符串引用,即使它的格式是数字


ServerValue.TIMESTAMP
是一个特殊的(映射)值,当在节点中添加或更新子数据时,可以在需要插入服务器当前时间感的位置使用它它不能用于节点本身的名称。


如果要创建基于某个时间的数据库位置,则需要在开始访问它之前知道该时间
ServerValue.TIMESTAMP
对您没有帮助,因为它只在服务器上生成

如果要添加按时间排序的数据,则应将()数据推送到数据库中。推送id基于时间,但它是客户端的时间感,而不是服务器


如果您真的需要在节点名称中使用服务器的时间感,则应改为在Google服务器上使用来测量时间并生成要写入的路径。

ServerValue。TIMESTAMP
的类型似乎是
Map
child(“documentName”)
需要字符串参数。是,我把它和我试图使用的另一种方法弄错了。谢谢,我觉得它更琐碎。我将使用push并添加服务器时间戳作为值。