我有一个firebase存储库,数据的结构如下:
我正在编写java代码,我只想获得“listname”的值。我正是这样做的:
Firebase f = new Firebase("https://marketlist.firebaseio.com/sharedlists/list1/listname");
然后,当我查看我的firebase对象f的成员函数时,isee有一个getName()函数返回listname,即“list1”,但这里没有getValue()函数。另外,我试过
Query q = f.startAt("list1").endAt("list1");
但同样,我无法获得价值。有人可以帮我吗?
由于
答案 0 :(得分:3)
Firebase的逻辑是数据可能会随时间而变化。因此,您需要监听以获取此类更改,而不是在Firebase参考上公开值:
f.on('value', function(snapshot) {
var val = snapshot.val();
});
在此回调函数中,val
现在将list1
作为其值。
如果/当listname
的值发生变化时,将再次调用回调,val
将具有新值。
<强>更新强>
我错过了你使用Java,所以上面的例子是针对JavaScript的。
在Java中,机制非常相似,但语法不同:
f.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
String val = (String) snapshot.getValue());
}
@Override public void onCancelled() { }
});
所以你通过addValueEventListener
附加了一个监听器。然后立即调用onDataChange
方法获取初始值以及引用值何时更改。