我编写了一个Firebase云功能,我想要在其中获取每个用户的内部集合(称为“数字”)并从该集合中读取每个文档以进行一些比较。

任何想法如何做到这一点?

我对Firebase还是很陌生,由于某种原因,数据库导航命令对我来说不太好。

我尝试了一些命令但没有成功

const snapshot = functions.database.collection('users').collection('numbers').get()


 let sfRef = db.collection('users');
    sfRef.getCollections().then(collections => {
        collections.forEach(collection => {
        console.log('Found subcollection with id:', collection.id);
        });
    });


这是一个松散的云代码基础结构

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();

export const prize1 = functions.pubsub.schedule('every 5 minutes').onRun((context) => {
    const users = functions.database.ref('/users/numbers')

    console.log("")
    return null;
});


我觉得我有一个很好的主意,但是语法使我受挫。

用户的集合。浏览此处的每个文档,即每个用户。
在每个用户中转到称为数字的集合。
在称为数字的集合中,遍历每个文档并找到数字字段以进行逻辑/比较。


希望这可以帮助您了解我的数据库的订购方式。

最佳答案

您可以这样尝试:

let usersRef = db.collection('users');
let allUsers = usersRef.get();
   .then(userSnapshot => {
     userSnapshot.forEach(userDoc => {
       userDoc.ref.collection('numbers').get().then(numSnapshot => {
         numSnapshot.forEach(numDoc => {
           console.log(numDoc.data().numbers);
           // here you got your numbers document with the numbers field
         });
       });
     });
   })
   .catch((error) => {
       console.log("Error getting document: ", error);
   });


有关更多信息,请查看herehere

10-07 19:56
查看更多