android - 如何从 firebase 中检索选定的节点?

标签 android firebase

这就是我的 firebase 数据库的样子。

enter image description here

我想访问节点 accepting-status 并说 patient23 例如。我可以通过在节点 accepting-statuspatient23 上分别使用 addListenerForSingleValueEvent 轻松地做到这一点,但是我需要两个不同的请求才能获得所需的数据。我还可以通过在父节点 beacon-final 上添加 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 请求是在一开始就建立套接字。

因此,在您的情况下,为数据发出两个单独的“请求”是完全可行的,因为没有真正的开销需要考虑。设备的 radio 已经打开,WebSocket header 只有 6 个字节。

您可以轻松地在 /accepting-status/patients/patient23 上创建监听器。这是拥有多个监听器的标准 Firebase 做法。

// Get a root reference 
Firebase rootRef = new Firebase("<my-firebase-app>");
// accepting-status ref
Firebase statusRef = rootRef.child("accepting-status");
// patient23 ref
Firebase patientRef = rootRef.child("patients").child("patient23");

// Listen for status updates
statusRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot snapshot) {
        System.out.println(snapshot.getValue());
    }
    @Override
    public void onCancelled(FirebaseError firebaseError) {
        // error
    }
});

// Listen for patient updates
patientRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot snapshot) {
        System.out.println(snapshot.getValue());
    }
    @Override
    public void onCancelled(FirebaseError firebaseError) {
        // error
    }
});

关于android - 如何从 firebase 中检索选定的节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34410207/

相关文章:

android - 如何在android中将日期从12小时格式转换为24小时格式

android - Android 设备 Web 服务 SYMFONY 3 的连接被拒绝

ios - Swift 中的异步 NSOperation 依赖

android - 找不到与 firebase-messaging 版本对应的 google-play-services 版本

java - Firestore : Query names that match or similar to the searched term

java - For 循环内的 Firestore 查询

java - 我的一些代码没有在 android studio 中执行?

firebase - firebase 在哪里保存它的简单登录用户?

swift - 如何从 Firebase 实时数据库检索数据?

Android 文件未找到异常