Firebase 查询以获取 2 个条目匹配的键
Firebase query to get the key where 2 entries match
有人可以向我解释一下我如何编写查询以通过查询号码和时间来取回正确的键值。
我数据库中的数字经常相同,但从来没有一个数字和时间相同。
"key1": {
"number": "123456789",
"test": "testing",
"time": 1499175554444
},
"key2": {
"number": "123456789",
"test": "testing",
"time": 1499175551923
}
number是String,time是long。
这是我一直在尝试的:
Query query = ref.child("test")
.child("test2").child("test3").orderByChild("number")
.equalTo("123456789");
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot appleSnapshot: dataSnapshot.getChildren() ) {
String key = appleSnapshot.getKey();
Toast.makeText(getContext(), key, Toast.LENGTH_SHORT).show();}
return;
}
这将始终给我 key1。
如何将时间参数添加到查询中,以便只获取与时间和数字匹配的键?
如有任何帮助,我们将不胜感激。
试试这个。
Query query = ref.child("test")
.child("test2")
.child("test3")
.orderByChild("number")
.equalTo("123456789");
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot appleSnapshot: dataSnapshot.getChildren() ) {
Key key = appleSnapshot.getValue(Key.class);
Long time1 = 1499175554444;
Long time2 = key.getTime();
if (time2 == time1 ) {
String key = appleSnapshot.getKey();
Toast.makeText(getContext(), key, Toast.LENGTH_SHORT).show();
}
}
}
有人可以向我解释一下我如何编写查询以通过查询号码和时间来取回正确的键值。 我数据库中的数字经常相同,但从来没有一个数字和时间相同。
"key1": {
"number": "123456789",
"test": "testing",
"time": 1499175554444
},
"key2": {
"number": "123456789",
"test": "testing",
"time": 1499175551923
}
number是String,time是long。
这是我一直在尝试的:
Query query = ref.child("test")
.child("test2").child("test3").orderByChild("number")
.equalTo("123456789");
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot appleSnapshot: dataSnapshot.getChildren() ) {
String key = appleSnapshot.getKey();
Toast.makeText(getContext(), key, Toast.LENGTH_SHORT).show();}
return;
}
这将始终给我 key1。
如何将时间参数添加到查询中,以便只获取与时间和数字匹配的键?
如有任何帮助,我们将不胜感激。
试试这个。
Query query = ref.child("test")
.child("test2")
.child("test3")
.orderByChild("number")
.equalTo("123456789");
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot appleSnapshot: dataSnapshot.getChildren() ) {
Key key = appleSnapshot.getValue(Key.class);
Long time1 = 1499175554444;
Long time2 = key.getTime();
if (time2 == time1 ) {
String key = appleSnapshot.getKey();
Toast.makeText(getContext(), key, Toast.LENGTH_SHORT).show();
}
}
}