我在我的项目中使用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());
}....
我在这里得到日志:
=====:onChildAdded:-LMsqXJTn5DoMZTELzuz getKey:
-LMsqXJVyXWZKqDizrCt
那么这个“ dataSnapshot”的关键是什么?
在其他情况下,我也得到了相反的结果,这使我感到非常困惑。
添加:
其他一些DataSnapshot,它们都是相同的。
最佳答案
onChildAdded
得到两个参数:
刚刚添加的DataSnapshot
前一个子项的密钥,之后添加了此新数据快照
因此,在您的示例中,新快照具有键-LMsqXJVyXWZKqDizrCt
,并且已将其添加到-LMsqXJTn5DoMZTELzuz
之后。
另请参见reference documentation for onChildAdded
:
public abstract void onChildAdded (DataSnapshot snapshot, String previousChildName)
将新的孩子添加到此侦听器添加到的位置时,将触发此方法。
参量
snapshot
-新的子位置的数据的不变快照
previousChildName
-在新子项之前订购的同级位置的键名。对于位置的第一个子节点,该值为null。