Разница между get () и snapshot () в облачном хранилище - PullRequest
0 голосов
/ 01 февраля 2019

Я читаю некоторые данные из Firebase Cloud Firestore, но я видел несколько способов сделать это.В примере, который я видел, использовались функции get и onSnapshot:

db.collection("cities").doc("SF")
 .onSnapshot(doc => {
      console.log(doc.data());
 });

или

var docRef = db.collection("cities").doc("SF");

docRef.get().then(doc => {
    if (doc.exists) {
         console.log("Document data:", doc.data());
    } else {
         console.log("No such document!");
    }
}).catch(function(error) {
   console.log("Error getting document:", error);
        });

Есть ли между ними разница?

1 Ответ

0 голосов
/ 01 февраля 2019

Как объяснено в документ :

Существует два способа для извлечения данных, хранящихся в Cloud Firestore.Любой из этих методов может использоваться с документами, коллекциями документов или результатами запросов:

  • Вызовите метод для получения данных.
  • Установите слушателя для получения данных-изменить события.

Когда вы устанавливаете прослушиватель, Cloud Firestore отправляет слушателю первоначальный снимок данных, а затем еще один снимок каждый раз, когда документ изменяется.

Когдавы используете get() вы «извлекаете содержимое одного документа» только один раз .Это своего рода «получить и забыть»: если документ изменяется в (внутренней) базе данных Firestore, вам нужно будет снова позвонить get(), чтобы увидеть это изменение.

Наоборот, если вы используетеonSnapshot() метод, который вы постоянно прослушиваете документ, как описано в doc :

Вы можете прослушать документ с помощью метода onSnapshot(),Первоначальный вызов с использованием предоставленного вами обратного вызова немедленно создает моментальный снимок документа с текущим содержимым одного документа.Затем каждый раз, когда содержимое изменяется , другой вызов обновляет моментальный снимок документа.

Как объясняется в этих документах, эти два метода применяются к одному документу или к коллекции документов (включая запрос ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...