Firebase onChildAdded响应中的名称值是什么?

时间:2018-09-20 22:27:37

标签: android firebase firebase-realtime-database

我在我的项目中使用Database Firebase。我对onChildAdded感到困惑。我有这样的代码:

mEventListener = new ChildEventListener() {
              @Override public void onChildAdded(@NonNull DataSnapshot dataSnapshot,
                @Nullable String stringS) {
   if (stringS != null
       && dataSnapshot.getKey()
      != null && !dataSnapshot.getKey().contains(stringS)) 
    {
     Log.e("=====", "onChildAdded: " + stringS +
           " getKey: " + dataSnapshot.getKey());
    }....
  • 我在这里得到日志:
  

=====:onChild已添加:-LMsqXJTn5DoMZTELzuz getKey:   -LMsqXJVyXWZKqDizrCt

  • 那么“ dataSnapshot”的关键是什么?

My firebase

  • 在其他情况下,我也得到了相反的结果,这让我真的很困惑。

已添加:

  • 其他一些DataSnapshot,它们都是相同的。

1 个答案:

答案 0 :(得分:1)

onChildAdded有两个参数:

  • 刚刚添加的DataSnapshot
  • 添加新数据快照后的上一个子项的键

因此,在您的示例中,新快照的密钥为-LMsqXJVyXWZKqDizrCt,它是在-LMsqXJTn5DoMZTELzuz之后添加的。

另请参阅reference documentation for onChildAdded

  

public abstract void onChildAdded (DataSnapshot snapshot, String previousChildName)

     

将新的孩子添加到此侦听器所在的位置时,将触发此方法。

     

参数

     

snapshot-新的子位置的数据的不变快照

     

previousChildName-在新子项之前订购的同级位置的键名。对于位置的第一个子节点,该值为null。