Node.js 如何在firebase上的云函数中在单个请求中读取多个用户id的数据
我将Firebase数据库用于我的Android应用程序和云功能。因为Firebase以JSON格式存储数据。每个用户都有一些分配给用户的唯一id 我想知道是否有任何方法可以在一个请求中获取多个用户的数据。如果您看到下面的代码,它将只获取传递的用户id的数据Node.js 如何在firebase上的云函数中在单个请求中读取多个用户id的数据,node.js,firebase,firebase-realtime-database,firebase-admin,Node.js,Firebase,Firebase Realtime Database,Firebase Admin,我将Firebase数据库用于我的Android应用程序和云功能。因为Firebase以JSON格式存储数据。每个用户都有一些分配给用户的唯一id 我想知道是否有任何方法可以在一个请求中获取多个用户的数据。如果您看到下面的代码,它将只获取传递的用户id的数据 db .ref("/users/" + request.query.userId) .once("value") .then(function(snapshot) { 我有10个用户ID,我想在nodejs中获取单
db
.ref("/users/" + request.query.userId)
.once("value")
.then(function(snapshot) {
我有10个用户ID,我想在nodejs中获取单个请求的数据。获取此信息的方法是什么?将它们存储在如下数组中:
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
})
将它们存储在如下数组中:
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
})
这可以写得更清楚:
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();
});
这可以写得更清楚:
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();
});
@Williams:这确实是一种常见的方法,并不像你想象的那么慢,因为Firebase通过单个连接来处理请求。关于这一点的解释,请参见我的回答@FrankvanPuffelen谢谢,你的帖子真的很有帮助:)@Williams:这确实是一种常见的方法,并不像你想象的那么慢,因为Firebase通过单个连接来处理请求。关于这一点的解释,请参见我的答案@FrankvanPuffelen谢谢,你的帖子真的很有帮助:)