如何在firebase上的云函数中的单个请求中读取多个用户id的数据

问题描述 投票:1回答:2

我正在为我的Android应用程序和云功能使用Firebase数据库。 Firebase以JSON格式存储数据。每个用户都有一些唯一的ID分配给用户。

我想知道是否有任何方法可以在单个请求中获取多个用户数据。如果您看到下面的代码,它将仅获取传递的用户ID的数据。

db
    .ref("/users/" + request.query.userId)
    .once("value")
    .then(function(snapshot) {

我有10个用户ID,我想在nodejs中的单个请求中获取数据。得到这个的方法是什么?

node.js firebase firebase-realtime-database firebase-admin
2个回答
3
投票

将它们存储在这样的数组中:

var promArr = []
var snapshotData = []
promArr.push(
db
    .ref("/users/" + request.query.userId) //put here unique usernames
    .once("value")
    .then(function(snapshot) {
    snapshotData.push(snapshot.val())
    })
return Promise.all(promArr).then(snap =>  {
//loop through snapshotData here
})

3
投票

这可以写得更清洁:

const records = [
  admin.database().ref(`users/${userId1}`).once('value'),
  admin.database().ref(`users/${userId2}`).once('value'),
];

return Promise.all(records).then(snapshots => {
   const record1 = snapshots[0].val();
   const record2 = snapshots[1].val();
});
© www.soinside.com 2019 - 2024. All rights reserved.