Firebase Java Query.equalTo() 不起作用
Firebase Java Query.equalTo() does not work
我正在尝试了解此方法的工作原理。我已设置好所有内容,并将一些字符串推送到我的 firebase 的根目录。我参考了我的 firebase,然后我试图以这种方式创建一个查询对象
Query refQ = ref.orderByValue().equalTo(word);
其中 word 与我推送到 firebase 的字符串相同。
我只想将该值打印到控制台。
发生的奇怪事情是控制台挂起,就像它处于无限循环中一样,我需要强制它终止。我在上面的代码行之后放了一个 print 语句,但它永远也达不到。
所以我的问题是,我做错了什么?
编辑:我忘了说 word
是静态的,是我推送到 firebase 的词之一。我这样做是为了测试功能。
我在 JDK 1.8.0_31:
中创建了这个最小的示例并且只是 运行
public static void main(String[] args) throws Exception {
Firebase ref = new Firebase("https://Whosebug.firebaseio.com/29553461");
/*
Map<String,Object> map = new HashMap<String, Object>();
map.put("puf", "Frank van Puffelen");
map.put("frank", "Frank van Puffelen");
map.put("david", "David East");
map.put("east", "David East");
ref.setValue(map);
*/
Query refQ = ref.orderByValue().equalTo("Frank van Puffelen");
refQ.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
System.out.println("Child added: "+dataSnapshot.getKey()+": "+dataSnapshot.getValue());
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) { }
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) { }
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) { }
@Override
public void onCancelled(FirebaseError firebaseError) { }
});
Console console = System.console();
if (console != null) {
console.format("Press ENTER to process.\n");
console.readLine();
}
else {
System.out.println("Sleeping for 5 seconds, in hopes that everything is done by then.");
Thread.sleep(5000);
}
}
它打印出来:
Child added: frank: Frank van Puffelen
Child added: puf: Frank van Puffelen
所以它对我来说似乎工作得很好。
我正在尝试了解此方法的工作原理。我已设置好所有内容,并将一些字符串推送到我的 firebase 的根目录。我参考了我的 firebase,然后我试图以这种方式创建一个查询对象
Query refQ = ref.orderByValue().equalTo(word);
其中 word 与我推送到 firebase 的字符串相同。
我只想将该值打印到控制台。 发生的奇怪事情是控制台挂起,就像它处于无限循环中一样,我需要强制它终止。我在上面的代码行之后放了一个 print 语句,但它永远也达不到。
所以我的问题是,我做错了什么?
编辑:我忘了说 word
是静态的,是我推送到 firebase 的词之一。我这样做是为了测试功能。
我在 JDK 1.8.0_31:
中创建了这个最小的示例并且只是 运行public static void main(String[] args) throws Exception {
Firebase ref = new Firebase("https://Whosebug.firebaseio.com/29553461");
/*
Map<String,Object> map = new HashMap<String, Object>();
map.put("puf", "Frank van Puffelen");
map.put("frank", "Frank van Puffelen");
map.put("david", "David East");
map.put("east", "David East");
ref.setValue(map);
*/
Query refQ = ref.orderByValue().equalTo("Frank van Puffelen");
refQ.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
System.out.println("Child added: "+dataSnapshot.getKey()+": "+dataSnapshot.getValue());
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) { }
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) { }
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) { }
@Override
public void onCancelled(FirebaseError firebaseError) { }
});
Console console = System.console();
if (console != null) {
console.format("Press ENTER to process.\n");
console.readLine();
}
else {
System.out.println("Sleeping for 5 seconds, in hopes that everything is done by then.");
Thread.sleep(5000);
}
}
它打印出来:
Child added: frank: Frank van Puffelen
Child added: puf: Frank van Puffelen
所以它对我来说似乎工作得很好。