如何在 Firebase 的 Android SDK 中监听单个字段
How to listen for a single field in Firebase's Android SDK
我正在尝试找出一种使用 FireBase API 来监听单个项目的方法。到目前为止,我想出了如何使用 orderByKey
和 equalTo
函数查询单个项目。
我尝试做一些类似的事情来监听单个值,但每当我更改一个值时,它都会给我整个数据库项目,而我只想要被更改的那个。我已经添加了 valueEventListener
和 childEventListener
,但它们似乎做了类似的事情。
有没有办法侦听单个项目并且仅 return 该单个项目?
如果我没理解错的话,假设这是您的 Firebase 设置摘要:
yourApp:
"node": {
"subNode1": {
"value1": value,
"value2": value,
"subSubNode":{
//....values....//
},
},
"node2": { ... },
"node3": { ... }
//...and so on ..//
},
您正在尝试收听 value2
? 如果是这样,那是不可能的。要访问这个,你需要监听父节点; subNode1
和 onChildEvent
,只需获取该值即可。
但是,如果您正在尝试收听 subNode1
甚至 subSubNode
,那 是 可能的 .通过在创建 Firebase 对象时提供该对象的路径。
如果您 post 更多代码,我会相应地修改它以更好地回答您的问题。
编辑
假设您想要检索 subSubNode
。创建对此的 Firebase 引用并添加侦听器:
Firebase firebase = new Firebase("yourFirebaseURL").child("node").child("subSubNode");
firebase.addChildEventListener(new .....);
我正在尝试找出一种使用 FireBase API 来监听单个项目的方法。到目前为止,我想出了如何使用 orderByKey
和 equalTo
函数查询单个项目。
我尝试做一些类似的事情来监听单个值,但每当我更改一个值时,它都会给我整个数据库项目,而我只想要被更改的那个。我已经添加了 valueEventListener
和 childEventListener
,但它们似乎做了类似的事情。
有没有办法侦听单个项目并且仅 return 该单个项目?
如果我没理解错的话,假设这是您的 Firebase 设置摘要:
yourApp:
"node": {
"subNode1": {
"value1": value,
"value2": value,
"subSubNode":{
//....values....//
},
},
"node2": { ... },
"node3": { ... }
//...and so on ..//
},
您正在尝试收听 value2
? 如果是这样,那是不可能的。要访问这个,你需要监听父节点; subNode1
和 onChildEvent
,只需获取该值即可。
但是,如果您正在尝试收听 subNode1
甚至 subSubNode
,那 是 可能的 .通过在创建 Firebase 对象时提供该对象的路径。
如果您 post 更多代码,我会相应地修改它以更好地回答您的问题。
编辑
假设您想要检索 subSubNode
。创建对此的 Firebase 引用并添加侦听器:
Firebase firebase = new Firebase("yourFirebaseURL").child("node").child("subSubNode");
firebase.addChildEventListener(new .....);