当我们调用push()在Firebase中生成密钥时,位置是否重要?

时间:2017-07-11 12:51:37

标签: android firebase-realtime-database

我有数据库参考:

DatabaseReference databaseRef = FirebaseDatabase.getInstance().getReference();

正在调用

databaseRef.push().getKey()    // first

与调用

不同
databaseRef.child(<key>).child(<key>).push().getKey()    // second

基本问题如下:如果我在使用第二种方式之前插入记录并使用第一种方式添加新记录,我是否会破坏Firebase生成密钥的订单属性?

1 个答案:

答案 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

这些键基于当前时间,因此无论您最后调用哪个都将获得最新时间