我有数据库引用:
DatabaseReference databaseRef = FirebaseDatabase.getInstance().getReference();
正在打电话
databaseRef.push().getKey() // first
不同于调用
databaseRef.child(<key>).child(<key>).push().getKey() // second
?
潜在问题如下:如果我在使用第二种方式之前插入了一条记录,然后使用第一种方式添加了一条新记录,我是否会破坏 Firebase 生成的键的顺序属性?
最佳答案
首先会为您的根创建一个新节点,而第二个会为您的特定位置创建一个新节点。基本上,push 方法通过为它分配一些神奇的数字作为键来为您创建一个新节点。 你的树像:
-root
|
- a
|
- b
如果你调用 databaseRef.push()
它将是这样的:
-root
|
- a
|
- b
|
- -KogjXeeIigb6SO-m3Qc
然后,如果您调用 databaseRef.child('b').push()
,它将类似于:
-root
|
- a
|
- b
|
- -Kola-ft7S-atSMBmOhJ
|
- -KogjXeeIigb6SO-m3Qc
这些键是基于当前时间的,所以无论你最后调用哪个都会得到最新的时间
关于android - 当我们在 Firebase 中调用 push() 生成 key 时,位置是否重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45035166/