在firebase中找不到getValue

时间:2014-03-22 17:52:31

标签: java firebase

我有一个firebase存储库,数据的结构如下:

enter image description here

我正在编写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");

但同样,我无法获得价值。有人可以帮我吗?

由于

1 个答案:

答案 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方法获取初始值以及引用值何时更改。