title: Query

查询指定路径和指定条件下的数据。

属性

getRef()

定义
  1. SyncReference getRef()
说明

获取当前 Query 实例所在路径下的 SyncReference 实例。

返回值

SyncReference 节点引用。


方法

addChildEventListener(listener)

定义
  1. ChildEventListener addChildEventListener(ChildEventListener listener)
说明

监听 Wilddog Sync 云端数据的主要方式之一,用于监听当前节点下子节点的数据。详细使用请参考:addChildEventListener() 完整指南。 当监听到当前节点的初始数据或当前节点的数据改变时,将会触发相应事件,每次返回一个子节点的数据。

参数
参数名 说明
listener ChildEventListener 类型,实现了此接口的类可以接收当前节点下的事件。
返回值

ChildEventListener 实例,可使用 removeEventListener(ChildEventListener) 方法移除监听。

示例
  1. SyncReference ref = WilddogSync.getInstance().getReference("test");
  2. ChildEventListener listener = ref.addChildEventListener(new ChildEventListener() {
  3. public void onChildAdded(DataSnapshot snapshot, String s) {
  4. System.out.println(snapshot.getValue());
  5. // DataSnapshot to json string
  6. try {
  7. JSONObject json = new JSONObject();
  8. json.put(dataSnapshot.getKey(), new JSONObject(dataSnapshot.getValue()));
  9. System.out.println(json.toString());
  10. } catch (JSONException e) {
  11. e.printStackTrace();
  12. }
  13. }
  14. public void onChildChanged(DataSnapshot snapshot, String s) {
  15. System.out.println(snapshot.getValue());
  16. }
  17. public void onChildRemoved(DataSnapshot snapshot) {
  18. System.out.println(snapshot.getValue());
  19. }
  20. public void onChildMoved(DataSnapshot snapshot, String s) {
  21. System.out.println(snapshot.getValue());
  22. }
  23. public void onCancelled(SyncError error) {
  24. if(error != null){
  25. System.out.println(error.getCode());
  26. }
  27. }
  28. });



addValueEventListener(listener)

定义
  1. void addValueEventListener(ValueEventListener listener)
说明

监听 Wilddog Sync 云端数据的主要方式之一,用于监听当前节点所有节点的数据。详细使用请参考:addValueEventListener() 完整指南。 当监听到当前节点的初始数据或当前节点的数据改变时,将会触发 onDataChange() 回调方法,返回当前节点下的所有数据。

参数
参数名 说明
listener ValueEventListener 类型,为当前节点绑定的监听事件。
返回值

ValueEventListener 实例,可使用 removeEventListener(ValueEventListener) 方法移除监听。

示例
  1. SyncReference ref = WilddogSync.getInstance().getReference("test");
  2. ValueEventListener listener = ref.addValueEventListener(new ValueEventListener(){
  3. public void onDataChange(DataSnapshot snapshot) {
  4. System.out.println(snapshot.getValue());
  5. // DataSnapshot to json string
  6. try {
  7. JSONObject json = new JSONObject();
  8. json.put(dataSnapshot.getKey(), new JSONObject(dataSnapshot.getValue()));
  9. System.out.println(json.toString());
  10. } catch (JSONException e) {
  11. e.printStackTrace();
  12. }
  13. }
  14. public void onCancelled(SyncError error) {
  15. if(error != null){
  16. System.out.println(error.getCode());
  17. }
  18. }
  19. });



addListenerForSingleValueEvent(listener)

定义
  1. void addListenerForSingleValueEvent(ValueEventListener listener)
说明

监听 Wilddog Sync 云端数据的主要方式之一,用于获取当前节点下的所有数据。详细使用请参考:addListenerForSingleValueEvent() 完整指南。 同 addValueEventListener() 类似,不同之处在于 addListenerForSingleValueEvent() 中的回调方法只被触发一次,之后会自动取消监听。

参数
参数名 说明
listener ValueEventListener 类型,为当前节点绑定的监听事件。



removeEventListener(childEventListener)

定义
  1. void removeEventListener(ChildEventListener childEventListener)
说明

移除监听事件。移除使用 addChildEventListener 方法设置的数据监听。详细使用请参考:removeEventListener() 完整指南

参数
参数名 说明
listener ChildEventListener 类型,要移除的监听事件。



removeEventListener(valueListener)

定义
  1. void removeEventListener(ValueEventListener valueListener)
说明

移除监听事件。移除使用 addValueEventListener 方法设置的数据监听。详细使用请参考:removeEventListener() 完整指南

参数
参数名 说明
listener ValueEventListener 类型,要移除的监听事件。



orderByKey()

定义
  1. Query orderByKey()
说明

创建一个新的 Query 实例,按子节点的 key 对结果以字典序进行排序。详细使用请参考:orderByKey() 完整指南。 此方法可以与 startAt()endAt()equalTo() 方法联合使用。

返回值

Query 查询器类实例。


orderByValue()

定义
  1. Query orderByValue()
说明

创建一个新的 Query 实例,按子节点的 value 值对结果排序。详细使用请参考:orderByValue() 完整指南。 此方法可以与 startAt()endAt()equalTo() 方法联合使用。

返回值

Query 查询器类实例。


orderByChild(childKey)

定义
  1. Query orderByChild(String childKey)
说明

创建一个新的 Query 实例,按子节点下指定 key 对应的 value 对结果进行排序。详细使用请参考:orderByChild() 完整指南。 此方法可以与 startAt()endAt()equalTo() 方法联合使用。

参数
参数名 说明
childKey String 用来排序的子节点的 key。
返回值

Query 查询器类实例。


orderByPriority()

定义
  1. Query orderByPriority()
说明

创建一个新的 Query 实例,按节点的 priority 对结果排序。详细使用请参考:orderByPriority() 完整指南。 节点按照如下优先级规则升序排列:null < Number < String。 排序规则:

  • priority 为 null 的排最先;
  • priority 为数值的次之,按照数值从小到大排序;
  • priority 为字符串的排最后,按照字典序排列;
  • 当两个子节点有相同的 priority(包括没有 priority),它们按照 key 进行排列,数字优先(按数值从小到大排序),其余以字典序排序。

    注意:

    数值优先级被作为 IEEE 754 双精度浮点型数字进行解析和排序,key 以 String 类型进行存储,只有当它能被解析成 32 位整型数字时被当作数字来处理。
    此方法可以与 startAt()endAt()equalTo() 方法联合使用。
返回值

Query 查询器类实例。



startAt(value)

定义
  1. Query startAt(startValue value)
说明

创建一个新的 Query 实例,可以查询所有大于或等于指定的 key、value 或 priority 的节点,具体取决于所选的排序方法。详细使用请参考:startAt() 完整指南。 此方法应与 orderByPriority()orderByKey()orderByValue()orderByChild() 方法联合使用。

注意:

对于使用 startAt(String value) 进行查询时,查询方式是通过将字符进行 unicode 编码后进行排序。
参数
参数名 说明
value 查询返回值的下界,所有返回值均大于等于 startValue。value 的类型 可以为 String、Double 或 boolean。
返回值

Query 查询器类实例。


startAt(startValue, key)

定义
  1. Query startAt(Object startValue, String childKey)
说明

创建一个新的 Query 实例,可以查询所有大于或等于指定的 value 或 priority 的节点,具体取决于所选的排序方法。详细使用请参考:startAt() 完整指南。 当查询到的 value 与 startValue 相等时,则只保留 key 大于等于 childKey 的节点。 此方法应与 orderByPriority()orderByKey()orderByValue()orderByChild() 方法联合使用。 该方法可用于分页。

注意:

对于使用 startAt(String value, String childKey) 进行查询时,查询方式是通过将字符进行 unicode 编码后进行排序。
参数
参数名 说明
value 查询返回值的下界,所有返回值均大于等于 startValue。value 的类型可以为 String、Double 或 Boolean。
childKey 当查询到的值和 startValue 相等时,返回其中 key 大于等于 childKey 的节点。
返回值

Query 查询器类实例。


endAt(endValue)

定义
  1. Query endAt(Object endValue)
说明

创建一个新的 Query 实例,可以查询所有小于或等于指定的 key、value 或 priority 的节点,具体取决于所选的排序方法。详细使用请参考:endAt() 完整指南
此方法应与 orderByPriority()orderByKey()orderByValue()orderByChild() 方法联合使用。

参数
参数名 说明
value 查询返回值的上界,所有返回值均小于等于 endValue。endValue 的类型可以为 String、Double 或 Boolean。
返回值

Query 查询器类实例。


endAt(endValue, childKey)

定义
  1. Query endAt(Object endValue, String childKey)
说明

创建一个新的 Query 实例,可以查询所有小于或等于指定的 key、value 或 priority 的节点,具体取决于所选的排序方法。详细使用请参考:endAt() 完整指南。 当查询到的 value 与 endValue 相等时,则只保留 key 小于等于 childKey 的节点 此方法应与 orderByPriority()orderByKey()orderByValue()orderByChild() 方法联合使用。

参数
参数名 说明
value 查询返回值的上界,所有返回值均小于等于 endValue。endValue 的类型可以为 String、Double 或 Boolean。
childKey 当查询到的值和 endValue 相等时,返回其中 key 小于等于 childKey 的节点。
返回值

Query 查询器类实例。


equalTo(value)

定义
  1. Object equalTo(Object value)
说明

创建一个新的 Query 实例,用于精确查询指定 key、value 或 priority 的节点,具体取决于所选的排序方法。详细使用请参考:equalTo() 完整指南。 此方法应与 orderByPriority()orderByKey()orderByValue()orderByChild() 方法联合使用。

参数
参数名 说明
value 查询节点的指定 value。
返回值

Query 查询器类实例。


equalTo(value, childKey)

定义
  1. Object equalTo(Object value, String childKey)
说明

创建一个新的 Query 实例,用于精确查询指定 key、value 或 priority 等于 value 并且节点 key 等于 childKey 的节点,具体取决于所选的排序方法。详细使用请参考:equalTo() 完整指南。 由于 childKey 是唯一的,查询最多返回一个节点。 此方法应与 orderByPriority()orderByKey()orderByValue()orderByChild() 方法联合使用。

参数
参数名 说明
value 指定查询节点的 value。
childKey 指定查询节点的 childKey。
返回值

Query 查询器类实例。


limitToFirst(limit)

定义
  1. Query limitToFirst(int limit)
说明

创建一个新的 Query 实例,获取当前排序下从第一个节点开始的最多 (limit) 条数据。详细使用请参考:limitToFirst() 完整指南

参数
参数名 说明
count 能够获取的子节点的最大数量。
返回值

Query 查询器类实例。


limitToLast(count)

定义
  1. Query limitToLast(int limit)
说明

创建一个新的 Query 实例,获取当前排序下,从最后一个节点开始向前的最多 (limit) 条数据。详细使用请参考:limitToFirst() 完整指南

参数
参数名 说明
count 能够获取的子节点的最大数量。
返回值

Query 查询器类实例。