java - FirebaseDatabase onChildChanged 返回多个快照
问题描述
我有一个问题,我没有得到最近添加的孩子。
这是我的测试代码:
val db = FirebaseDatabase.getInstance().reference
val newref = db.child("/Orders/ODbPagPuDFgGhj0l73lynD4Wdkr2/")
newref.addChildEventListener(object: ChildEventListener {
override fun onChildChanged(snap: DataSnapshot, p1: String?) {
Log.d("ac1234","${snap}")
}
override fun onCancelled(p0: DatabaseError) { }
override fun onChildMoved(p0: DataSnapshot, p1: String?) { }
override fun onChildAdded(p0: DataSnapshot, p1: String?) { }
override fun onChildRemoved(p0: DataSnapshot) { }
})
这是logcat:
2019-11-19 06:02:24.596 14991-14991/com.example.fru_vegetablesadmin D/ac1234: DataSnapshot { key = -Lu2y9uay-7G3gtFI4g3, value = {locationLat=33.95212290629996, locationLong=35.62042236328125, phoneNumber=+19823737, totalPrice=8,197 L.L., optionalAddress=, optionalNote=, time=19/10/2019 16:2 , order={Fresh Cucumber={totalQuantity=3 Kg, totalPrice=7497}}} }
2019-11-19 06:02:24.603 14991-14991/com.example.fru_vegetablesadmin D/ac1234: DataSnapshot { key = -Lu2y9uay-7G3gtFI4g3, value = {locationLat=33.95212290629996, locationLong=35.62042236328125, phoneNumber=+19823737, totalPrice=8,197 L.L., optionalAddress=, optionalNote=, time=19/10/2019 16:2 , order={Fresh Cucumber={totalQuantity=3 Kg, totalPrice=7497}}} }
2019-11-19 06:02:24.645 14991-14991/com.example.fru_vegetablesadmin D/ac1234: DataSnapshot { key = -Lu2y9uay-7G3gtFI4g3, value = {locationLat=33.95212290629996, locationLong=35.62042236328125, phoneNumber=+19823737, totalPrice=8,197 L.L., optionalAddress=, optionalNote=, time=19/10/2019 16:2 , order={Fresh Cucumber={totalQuantity=3 Kg, totalPrice=7497}, Fresh Eggplant={totalQuantity=200 G, totalPrice=700}}} }
我不知道为什么它返回 3 行数据,我只想听是否在 uid 下添加了一个孩子(“ODbPagPuD ...”)
提前致谢
解决方案
改变这个:
newref.addChildEventListener(object: ChildEventListener {
override fun onChildChanged(snap: DataSnapshot, p1: String?) {
Log.d("ac1234","${snap}")
}
override fun onCancelled(p0: DatabaseError) { }
override fun onChildMoved(p0: DataSnapshot, p1: String?) { }
override fun onChildAdded(p0: DataSnapshot, p1: String?) { }
override fun onChildRemoved(p0: DataSnapshot) { }
})
进入这个:
newref.addValueEventListener(object: ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
Log.d("ac1234","${dataSnapshot}")
}
override fun onCancelled(databaseError: DatabaseError) {
Log.w(TAG, "loadPost:onCancelled", databaseError.toException())
}
}
推荐阅读
- sqlalchemy - 未创建快速 api sqlalchemy 表
- android - Flutter 错误:无法从 /android/gradle/wrapper/gradle-wrapper.properties' 加载包装器属性
- node.js - Node Js安装错误,启动npm时出错
- c - 在 Xcode 中显示时间
- docker - 无法连接到 Kubernetes - 配置无效
- javascript - 从 Reactjs 中的文件导出数据
- javascript - NATS 与分子。如何更改 NATS max_payload 值?
- reactjs - 从 GitHub 目录部署一个 react 应用程序到 netlify
- ansible - 如何在我的集合的根目录上运行 ansible-test?
- c - C中字符串从大写变为小写时堆溢出[leetcode]