Можно ли читать данные Firebase без подключения слушателей?
Я работаю над приложением Firebase для Android и нуждаюсь в способе чтения данных из Firebase без фактического подключения слушателей. В данном конкретном случае мне все равно, если данные после первоначального чтения будут изменены. Есть ли способ, с помощью которого я могу напрямую обращаться к DataSnapshot
без привязки EventListener к ссылке Firebase? Или есть ли другой способ, с помощью которого я могу напрямую читать ссылку на Firebase с эквивалентом ref.getValue()
?
Спасибо.
Ответы
Ответ 1
Java SDK предоставляет метод addListenerForSingleValueEvent
, который эквивалентен вашему ref.getValue(). Он используется так же, как addValueEventListener
, но получает только одно значение.
fb.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snap) {
System.out.println(snap.getName() + " -> " + snap.getValue());
}
@Override public void onCancelled() { }
});
API REST, как отметил Фрэнк, также является отличным выбором.
Ответ 2
Вы можете использовать API-интерфейс Firebase REST для доступа к "сырым" данным.
От: https://www.firebase.com/docs/rest-api.html
Вы можете использовать любой URL-адрес Firebase в качестве конечной точки REST. Все, что вам нужно сделать, это добавить ".json" в конец URL-адреса и отправить запрос от вашего любимого клиента HTTPS. Обратите внимание, что требуется HTTPS. Firebase реагирует только на зашифрованный трафик, чтобы ваши данные оставались в безопасности.
curl https://SampleChat.firebaseIO-demo.com/users/jack/name.json
Успешный запрос указывается кодом состояния 200 OK HTTP. Ответ будет содержать полученные данные:
{"first":"Jack", "last": "Sparrow"}
На этой же странице также упоминается проект оболочки Java: https://github.com/bane73/firebase4j