下面是數據結構如下:Firebase中equalTo(「value」,「key」)的用法?
{
"list" : {
"-K4YlfoWHZqPyWONv68Y" : {
".priority" : -1.449077948445E12,
"date" : 1449077948445,
"id" : "0",
"name" : "Name_0"
},
"-K4YlfoWHZqPyWONv68Z" : {
".priority" : -1.449077948445E12,
"date" : 1449077948445,
"id" : "1",
"name" : "Name_1"
},
"-K4YlfoWHZqPyWONv68_" : {
".priority" : -1.449077948445E12,
"date" : 1449077948445,
"id" : "0",
"name" : "Name_2"
},
"-K4YlfoWHZqPyWONv68a" : {
".priority" : -1.449077948445E12,
"date" : 1449077948445,
"id" : "1",
"name" : "Name_3"
},
...
}
我需要其中id是「0」,只拿到項目;
以下工作:
final Firebase ref = new Firebase("https://millezim-test.firebaseio.com/").child("list");
ref.orderByChild("id").equalTo("1").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot d : dataSnapshot.getChildren()) {
Model m = d.getValue(Model.class);
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
但沒有這一項,爲什麼呢?
ref.equalTo("1","id").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot d : dataSnapshot.getChildren()) {
Model m = d.getValue(Model.class);
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
難道我誤會equalTo(「價值」,「鍵」)是沒有重新排序使用的東西?
在Android部分,沒有這樣的細節https://www.firebase.com/docs/android/api/#query_equalTo – Anthony
爲了確保理解,「key」是「list's item key」的起點,只考慮基於優先級的請求? – Anthony
我也無法解析該子句。但我總是使用'orderByChild()',所以從未遇到過這個問題。 –