我编写了一个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);
});
有关更多信息,请查看here和here。