我有数据库参考:
DatabaseReference databaseRef = FirebaseDatabase.getInstance().getReference();
正在调用
databaseRef.push().getKey() // first
与调用
不同databaseRef.child(<key>).child(<key>).push().getKey() // second
基本问题如下:如果我在使用第二种方式之前插入记录并使用第一种方式添加新记录,我是否会破坏Firebase生成密钥的订单属性?
答案 0 :(得分:1)
首先将为您的根创建一个新节点,然后第二个将为您的specfici位置创建一个新节点。基本上,push方法通过为其指定一些神奇的数字作为键来为您创建一个新节点。 你的树像:
-root
|
- a
|
- b
如果你致电databaseRef.push()
,就会像:
-root
|
- a
|
- b
|
- -KogjXeeIigb6SO-m3Qc
然后,如果你致电databaseRef.child('b').push()
,它将会是:
-root
|
- a
|
- b
|
- -Kola-ft7S-atSMBmOhJ
|
- -KogjXeeIigb6SO-m3Qc
这些键基于当前时间,因此无论您最后调用哪个都将获得最新时间