Как получить последний добавленный документ в коллекции в Firebase / Google Cloud Firestore? - PullRequest
0 голосов
/ 18 сентября 2018

Используя веб / платформу JS, я хочу получить самый последний документ, добавленный в коллекцию.

  1. Как мне это сделать?
  2. Нужно ли добавлять метку времени при сохранении данных?
  3. Сервер автоматически добавляет метку времени в фоновом режиме на doc.add()?
https://firebase.google.com/docs/firestore/query-data/get-data
db
  .collection("cities")
  // .orderBy('added_at', 'desc') // fails
  // .orderBy('created_at', 'desc') // fails
  .limit(1)
  .get()
  .then(querySnapshot => {
    querySnapshot.forEach(doc => {
      console.log(doc.id, " => ", doc.data());
      // console.log('timestamp: ', doc.timestamp()); // throws error (not a function)
      // console.log('timestamp: ', doc.get('created_at')); // undefined
    });
  });

1 Ответ

0 голосов
/ 18 сентября 2018

Вы можете попробовать использовать метод onSnapshot для прослушивания изменений:

db.collection("cities").where("state", "==", "CA")
    .onSnapshot(function(snapshot) {
        snapshot.docChanges().forEach(function(change) {
            if (change.type === "added") {
                console.log("New city: ", change.doc.data());
                //do what you want here!
                //function for rearranging or sorting etc.
            }
            if (change.type === "modified") {
                console.log("Modified city: ", change.doc.data());
            }
            if (change.type === "removed") {
                console.log("Removed city: ", change.doc.data());
            }
        });
    });

Источник: https://firebase.google.com/docs/firestore/query-data/listen

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