То, что «лучше», субъективно.Но если вы хотите отправить все обновление за один вызов, вы можете сделать это с помощью 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();
Разница в производительности между этим и тем, что вы делаете, будет минимальной, так как все запросыуже передано по конвейеру через одно соединение (см. мой ответ здесь ).Но отправка их за один вызов может позволить вам выполнить дополнительные проверки на сервере, если все данные принадлежат друг другу.