Query
查询指定路径和指定条件下的数据。
getRef()
Section titled “getRef()”SyncReference getRef()获取当前 Query 实例所在路径下的 SyncReference 实例。
SyncReference 节点引用。
addChildEventListener(listener)
Section titled “addChildEventListener(listener)”ChildEventListener addChildEventListener(ChildEventListener listener)监听 Wilddog Sync 云端数据的主要方式之一,用于监听当前节点下子节点的数据。详细使用请参考:addChildEventListener() 完整指南。 当监听到当前节点的初始数据或当前节点的数据改变时,将会触发相应事件,每次返回一个子节点的数据。
| 参数名 | 说明 |
|---|---|
| listener | ChildEventListener 类型,实现了此接口的类可以接收当前节点下的事件。 |
ChildEventListener 实例,可使用 removeEventListener(ChildEventListener) 方法移除监听。
SyncReference ref = WilddogSync.getInstance().getReference("test");
ChildEventListener listener = ref.addChildEventListener(new ChildEventListener() { public void onChildAdded(DataSnapshot snapshot, String s) { System.out.println(snapshot.getValue()); // DataSnapshot to json string try { JSONObject json = new JSONObject(); json.put(dataSnapshot.getKey(), new JSONObject(dataSnapshot.getValue())); System.out.println(json.toString()); } catch (JSONException e) { e.printStackTrace(); }
}
public void onChildChanged(DataSnapshot snapshot, String s) { System.out.println(snapshot.getValue()); }
public void onChildRemoved(DataSnapshot snapshot) { System.out.println(snapshot.getValue()); }
public void onChildMoved(DataSnapshot snapshot, String s) { System.out.println(snapshot.getValue()); }
public void onCancelled(SyncError error) { if(error != null){ System.out.println(error.getCode()); } }});addValueEventListener(listener)
Section titled “addValueEventListener(listener)”void addValueEventListener(ValueEventListener listener)监听 Wilddog Sync 云端数据的主要方式之一,用于监听当前节点所有节点的数据。详细使用请参考:addValueEventListener() 完整指南。
当监听到当前节点的初始数据或当前节点的数据改变时,将会触发 onDataChange() 回调方法,返回当前节点下的所有数据。
| 参数名 | 说明 |
|---|---|
| listener | ValueEventListener 类型,为当前节点绑定的监听事件。 |
ValueEventListener 实例,可使用 removeEventListener(ValueEventListener) 方法移除监听。
SyncReference ref = WilddogSync.getInstance().getReference("test");ValueEventListener listener = ref.addValueEventListener(new ValueEventListener(){ public void onDataChange(DataSnapshot snapshot) { System.out.println(snapshot.getValue()); // DataSnapshot to json string try { JSONObject json = new JSONObject(); json.put(dataSnapshot.getKey(), new JSONObject(dataSnapshot.getValue())); System.out.println(json.toString()); } catch (JSONException e) { e.printStackTrace(); } }
public void onCancelled(SyncError error) { if(error != null){ System.out.println(error.getCode()); } }});addListenerForSingleValueEvent(listener)
Section titled “addListenerForSingleValueEvent(listener)”void addListenerForSingleValueEvent(ValueEventListener listener)监听 Wilddog Sync 云端数据的主要方式之一,用于获取当前节点下的所有数据。详细使用请参考:addListenerForSingleValueEvent() 完整指南。
同 addValueEventListener() 类似,不同之处在于 addListenerForSingleValueEvent() 中的回调方法只被触发一次,之后会自动取消监听。
| 参数名 | 说明 |
|---|---|
| listener | ValueEventListener 类型,为当前节点绑定的监听事件。 |
removeEventListener(childEventListener)
Section titled “removeEventListener(childEventListener)”void removeEventListener(ChildEventListener childEventListener)移除监听事件。移除使用 addChildEventListener 方法设置的数据监听。详细使用请参考:removeEventListener() 完整指南。
| 参数名 | 说明 |
|---|---|
| listener | ChildEventListener 类型,要移除的监听事件。 |
removeEventListener(valueListener)
Section titled “removeEventListener(valueListener)”void removeEventListener(ValueEventListener valueListener)移除监听事件。移除使用 addValueEventListener 方法设置的数据监听。详细使用请参考:removeEventListener() 完整指南。
| 参数名 | 说明 |
|---|---|
| listener | ValueEventListener 类型,要移除的监听事件。 |
orderByKey()
Section titled “orderByKey()”Query orderByKey()创建一个新的 Query 实例,按子节点的 key 对结果以字典序进行排序。详细使用请参考:orderByKey() 完整指南。
此方法可以与 startAt()、endAt() 或 equalTo() 方法联合使用。
Query 查询器类实例。
orderByValue()
Section titled “orderByValue()”Query orderByValue()创建一个新的 Query 实例,按子节点的 value 值对结果排序。详细使用请参考:orderByValue() 完整指南。
此方法可以与 startAt()、endAt() 或 equalTo() 方法联合使用。
Query 查询器类实例。
orderByChild(childKey)
Section titled “orderByChild(childKey)”Query orderByChild(String childKey)创建一个新的 Query 实例,按子节点下指定 key 对应的 value 对结果进行排序。详细使用请参考:orderByChild() 完整指南。
此方法可以与 startAt()、endAt() 或 equalTo() 方法联合使用。
| 参数名 | 说明 |
|---|---|
| childKey | String 用来排序的子节点的 key。 |
Query 查询器类实例。
orderByPriority()
Section titled “orderByPriority()”Query orderByPriority()创建一个新的 Query 实例,按节点的 priority 对结果排序。详细使用请参考:orderByPriority() 完整指南。
节点按照如下优先级规则升序排列:null < Number < String。
排序规则:
- priority 为 null 的排最先;
- priority 为数值的次之,按照数值从小到大排序;
- priority 为字符串的排最后,按照字典序排列;
- 当两个子节点有相同的 priority(包括没有 priority),它们按照 key 进行排列,数字优先(按数值从小到大排序),其余以字典序排序。
此方法可以与 `startAt()`、`endAt()` 或 `equalTo()` 方法联合使用。注意:
数值优先级被作为 IEEE 754 双精度浮点型数字进行解析和排序,key 以 String 类型进行存储,只有当它能被解析成 32 位整型数字时被当作数字来处理。
Query 查询器类实例。
startAt(value)
Section titled “startAt(value)”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)
Section titled “startAt(startValue, key)”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)
Section titled “endAt(endValue)”Query endAt(Object endValue)创建一个新的 Query 实例,可以查询所有小于或等于指定的 key、value 或 priority 的节点,具体取决于所选的排序方法。详细使用请参考:endAt() 完整指南。
此方法应与 orderByPriority()、orderByKey()、orderByValue() 或 orderByChild() 方法联合使用。
| 参数名 | 说明 |
|---|---|
| value | 查询返回值的上界,所有返回值均小于等于 endValue。endValue 的类型可以为 String、Double 或 Boolean。 |
Query 查询器类实例。
endAt(endValue, childKey)
Section titled “endAt(endValue, childKey)”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)
Section titled “equalTo(value)”Object equalTo(Object value)创建一个新的 Query 实例,用于精确查询指定 key、value 或 priority 的节点,具体取决于所选的排序方法。详细使用请参考:equalTo() 完整指南。
此方法应与 orderByPriority()、orderByKey()、orderByValue() 或 orderByChild() 方法联合使用。
| 参数名 | 说明 |
|---|---|
| value | 查询节点的指定 value。 |
Query 查询器类实例。
equalTo(value, childKey)
Section titled “equalTo(value, childKey)”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)
Section titled “limitToFirst(limit)”Query limitToFirst(int limit)创建一个新的 Query 实例,获取当前排序下从第一个节点开始的最多 (limit) 条数据。详细使用请参考:limitToFirst() 完整指南。
| 参数名 | 说明 |
|---|---|
| count | 能够获取的子节点的最大数量。 |
Query 查询器类实例。
limitToLast(count)
Section titled “limitToLast(count)”Query limitToLast(int limit)创建一个新的 Query 实例,获取当前排序下,从最后一个节点开始向前的最多 (limit) 条数据。详细使用请参考:limitToFirst() 完整指南。
| 参数名 | 说明 |
|---|---|
| count | 能够获取的子节点的最大数量。 |
Query 查询器类实例。