2016-12-28 4 views
1

Я не совсем понял, когда следует использовать DatabaseReference и DataSnapshot.Firebase DatabaseReference vs DataSnapshot

В моем приложении я, кажется, использую оба из них без реального различия (возможно, за исключением записи в Firebase, в этом случае DataSnapshot не был создан).

+1

@JefriiyerS Не очень полезно – CaptainNemo

ответ

3

База данных является отправной точкой для всех операций с базой данных. Это позволяет читать, писать и создавать новые DatabaseReferences.

DataSnapshot - это эффективно генерируемая неизменяемая копия данных в местоположении Firebase. Они не могут быть изменены и никогда не будут меняться.

Я считаю, что под капотом DataSnapshot был бы более эффективным объектом для создания, чем DatabaseReference, и более безопасным объектом для работы в сценарии только для чтения, поскольку это был бы неизменный объект без каких-либо дополнительных данных, связанных с это похоже на DatabaseReference.

Источники:

DatabaseReference https://firebase.google.com/docs/reference/android/com/google/firebase/database/DatabaseReference

DataSnapshot https://firebase.google.com/docs/reference/android/com/google/firebase/database/DataSnapshot

+0

Итак, если я правильно понимаю, в основном DatabaseReference предназначен для изменения, добавления или удаления из Firebase и DataSnapshot для чтения? Это все? – CaptainNemo

+1

Вот как я это понимаю. –

1

DatabaseReference предназначен для ссылки на местоположение конкретного узла в вашей структуре базы данных. DataSnapshot используется для извлечения данных из узла всякий раз, когда из базы данных запускается событие-слушатель. Данные извлекаются в виде пар ключ-значение.

+1

Так что, если я правильно понимаю, в основном DatabaseReference для изменения, добавления или удаления из Firebase и DataSnapshot является для чтение? Это все? – CaptainNemo

+1

Да. DataSnapshot можно использовать только для чтения данных, в то время как вы можете изменять, добавлять или удалять данные с использованием DatabaseReference на определенный узел AFAIK. – Asym

Смежные вопросы