gpt4 book ai didi

java - 在 Firebase 上编写 ArrayList 的方法比 for 循环更好?

转载 作者:行者123 更新时间:2023-12-02 11:08:01 24 4
gpt4 key购买 nike

我现在通过 Android 应用程序连接到 BLE 设备,并将接收到的数据添加到 ArrayList。当按下按钮时,我会将这个 ArrayList 中的数据写入 Firebase。但是,我想知道是否有更好的方法来执行写入过程,因为当我按下按钮并开始写入时,ArrayList 的大小可能会很大。以下是我的代码:

List<HashMap> dataBufferList = new ArrayList();

HashMap<String, String> data = new HashMap<>();
data.put("HR", ","80");
data.put("GPS","20.75,56.98");
data.put("Time", getCurrentTime(sdf));
dataBufferList.add(data);

for(int i = 0 ; i < dataBufferList.size();++i){
myRef.push().setValue(dataBufferList.get(i));
}
dataBufferList.clear();

最佳答案

什么是“更好”是主观的。但如果您想在一次调用中发送整个更新,则可以使用 updateChildren() 来实现:

List<HashMap> dataBufferList = new ArrayList();

HashMap<String, Object> updates = new HashMap<>();

HashMap<String, String> data = new HashMap<>();
data.put("HR", ","80");
data.put("GPS","20.75,56.98");
data.put("Time", getCurrentTime(sdf));
dataBufferList.add(data);

for(int i = 0 ; i < dataBufferList.size();++i){
updates.put(myRef.push().getKey(), dataBufferList.get(i))
}
myRef.updateChildren(updates);
dataBufferList.clear();

此操作与您所做的操作之间的性能差异将很小,因为所有请求都已通过单个连接进行管道传输(请参阅 my answer here )。但是,如果所有数据都属于一起,则在一次调用中发送它们可能允许您在服务器上进行额外的验证。

关于java - 在 Firebase 上编写 ArrayList 的方法比 for 循环更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50789987/

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