是否可以在不附加任何侦听器的情况下读取Firebase数据?

我正在使用Firebase Android应用,需要一种从Firebase读取数据而无需实际附加任何侦听器的方法。 如果数据在初始读取后发生变化,我不关心这个特定情况。 有没有一种方法可以直接访问DataSnapshot而无需将EventListener附加到Firebase引用? 或者是否有其他方法可以直接从Firebase引用读取某种ref.getValue()等效的方法?

谢谢。

您可以使用Firebase的REST API来访问“原始”数据。

来自: https : //www.firebase.com/docs/rest-api.html

您可以将任何Firebase URL用作REST端点。 您需要做的就是将“.json”附加到URL的末尾,并从您喜欢的HTTPS客户端发送请求。 请注意,HTTPS是必需的。 Firebase仅响应加密流量,以确保您的数据安全。

 curl https://SampleChat.firebaseIO-demo.com/users/jack/name.json 

成功的请求将由200 OK HTTP状态代码指示。 响应将包含要检索的数据:

 {"first":"Jack", "last": "Sparrow"} 

同一页面还提到了一个Java包装器项目: https : //github.com/bane73/firebase4j

Java SDK提供了一个addListenerForSingleValueEvent方法,它等同于ref.getValue()。 它的使用方式与addValueEventListener类似,但只检索单个值。

 fb.addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot snap) { System.out.println(snap.getName() + " -> " + snap.getValue()); } @Override public void onCancelled() { } }); 

正如Frank所提到的,REST API也是一个很好的选择。