Вернуть документы в моментальном снимке запроса как хранилище строк json

У меня есть запрос, сделанный в узле к firestore, чтобы получить коллекцию документов. Я хочу написать коллекцию в виде строки json для анализа приложением. Мой код выглядит следующим образом:

serverRef = db.collection('servers');
        getDocs = serverRef.where('online', '==', true).get()
        .then(querySnapshot => {
            if (querySnapshot.empty) {
                res.send("NO SERVERS AVAILABLE");
            } else {
                var docs = querySnapshot.docs;
                console.log('Document data:', docs);
                res.end(JSON.stringify({kind: 'freeforge#PublicServerSearchResponse',servers: docs}));
            }

Таким образом я получаю ненужные данные, поскольку все, что я получаю, это снимки документов. Как мне просмотреть снимки документа и отправить их одной строкой json?


person Sammi3    schedule 25.12.2018    source источник


Ответы (2)


Классы QuerySnapshot и Document не являются простыми типами JSON. Если вы хотите контролировать написанное, вам нужно перебрать querySnapshotmap или forEach) и извлечь данные JSON для себя.

Один из возможных примеров:

serverRef = db.collection('servers');
getDocs = serverRef.where('online', '==', true).get()
.then(querySnapshot => {
    if (querySnapshot.empty) {
        res.send("NO SERVERS AVAILABLE");
    } else {
        var docs = querySnapshot.docs.map(doc => doc.data());
        console.log('Document data:', docs);
        res.end(JSON.stringify({kind: 'freeforge#PublicServerSearchResponse', servers: docs}));
    }
});
person Frank van Puffelen    schedule 26.12.2018

Любой, кто ищет ответ на флаттер, это,

    serverRef = db.collection('servers');
    getDocs = serverRef.where('online', '==', true).get()
     .then(querySnapshot => {
       if (querySnapshot.empty) {
          res.send("NO SERVERS AVAILABLE");
          } else {
         var docs = 
         querySnapshot.docs.map(json.decode(json.encode(doc.data())));
       }
     });
person Saurabh Patwal    schedule 17.05.2021