gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 13:51:34 25 4
gpt4 key购买 nike

这就是我的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com