android - 响应 onChildAdded,Firebase 的名称值是什么?
问题描述
我在我的项目中使用 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”的关键是什么???
- 在其他情况下,我也得到了一些相反的结果,所以这让我很困惑。
添加:
- 其他一些 DataSnapshot ,它们都是相同的。
解决方案
onChildAdded
得到两个参数:
DataSnapshot
刚刚添加的- 添加此新数据快照的前一个子项的键
因此,在您的示例中,新快照具有密钥-LMsqXJVyXWZKqDizrCt
,并且是在-LMsqXJTn5DoMZTELzuz
.
另请参阅参考文档onChildAdded
:
public abstract void onChildAdded (DataSnapshot snapshot, String previousChildName)
当一个新的孩子被添加到这个监听器被添加到的位置时,这个方法被触发。
参数
snapshot
- 新子位置数据的不可变快照
previousChildName
- 在新孩子之前排序的兄弟位置的键名。对于位置的第一个子节点,这将为空。
推荐阅读
- javascript - 为什么在 Firefox 和 Safari 和 Internet Explorer 中不支持单击处理程序事件 SVG 元素?
- java - 在没有数据的情况下从 ViewModel 触发 View 操作
- python - 我是否正确使用系统调用/子进程调用?
- php - Laravel cronjob schedule 命令未在生产中触发
- php - imagecolorat() 中的“资源”是什么?
- powershell - 如何删除 Azure ILB ASE SSL 证书
- scala - 使用 Scala 反射从对象中获取原始字段的类型
- javascript - 范围访问护照-jwt
- angular - 在 Angular 2 中创建嵌套元素
- c++ - 继承和方法覆盖