这就是我的Firebase数据库的外观.
我想访问该节点的accepting-status,例如说patIEnt23.我可以通过分别在accepting-status和PatIEnt23的节点上使用addListenerForSingleValueEvent轻松地做到这一点,但是随后我需要两个不同的请求来获取所需的数据.我还可以通过在父节点信标最后添加addListenerForSingleValueEvent的单个请求来获取所需的数据,但是那样会检索大量数据,因为患者人数众多.我如何在单个请求中进行 *** 作,但仅检索必需的节点.谢谢.
解决方法:
…but then it would take me two different requests to get the
required data.
Firebase数据库是全部一个JsON对象.如果选择一个部分,则所有内容都将在下面.
但是,Firebase使用WebSockets,它是与服务器的持久连接. This means that you don’t have to worry about making a request,因为唯一的http请求是在最开始建立套接字的.
因此,在您的情况下,对数据进行两个单独的“请求”是完全可行的,因为没有实际的开销要考虑.设备的无线电已经打开,并且WebSocket标头仅为6个字节.
您可以轻松地在/ accepting-status以及/ PatIEnts / PatIEnt23上创建一个侦听器.这是具有多个侦听器的Firebase标准做法.
// Get a root reference Firebase rootRef = new Firebase("<my-firebase-app>");// accepting-status refFirebase statusRef = rootRef.child("accepting-status");// patIEnt23 refFirebase patIEntRef = rootRef.child("patIEnts").child("patIEnt23");// Listen for status updatesstatusRef.addValueEventListener(new ValueEventListener() { @OverrIDe public voID onDataChange(DataSnapshot snapshot) { System.out.println(snapshot.getValue()); } @OverrIDe public voID onCancelled(FirebaseError firebaseError) { // error }});// Listen for patIEnt updatespatIEntRef.addValueEventListener(new ValueEventListener() { @OverrIDe public voID onDataChange(DataSnapshot snapshot) { System.out.println(snapshot.getValue()); } @OverrIDe public voID onCancelled(FirebaseError firebaseError) { // error }});
总结 以上是内存溢出为你收集整理的如何从Firebase检索选定的节点?全部内容,希望文章能够帮你解决如何从Firebase检索选定的节点?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)