Javascript 使用firebase响应构建json对象
我正在构建一个json对象来返回从两个firebase调用收集的数据。在开发中,对象附带数据(事件)。当我构建应用程序并部署时,数据(事件)返回空值 这是我的密码:Javascript 使用firebase响应构建json对象,javascript,firebase-realtime-database,firebase-admin,Javascript,Firebase Realtime Database,Firebase Admin,我正在构建一个json对象来返回从两个firebase调用收集的数据。在开发中,对象附带数据(事件)。当我构建应用程序并部署时,数据(事件)返回空值 这是我的密码: import admin from '../../lib/firebase-admin'; const validate = async (token) => { let events = null let user = null if(token){ const decodedToken = awai
import admin from '../../lib/firebase-admin';
const validate = async (token) => {
let events = null
let user = null
if(token){
const decodedToken = await admin.auth().verifyIdToken(token, true);
user = await admin.auth().getUser(decodedToken.uid);
}
admin.database().ref(`events`).on('value', snapshot => {
events = { ...snapshot.val() }
})
const result = {
data: {
uid: user ? user.uid : null,
email: user ? user.email : null,
emailVerified: user ? user.emailVerified : null,
events: events
},
};
return result;
};
export default async (req, res) => {
try {
const { token } = JSON.parse(req.headers.authorization || '{}');
const result = await validate(token);
return res.status(200).send(result);
} catch (err) {
console.log(err);
const result = undefined;
return res.status(200).send(result);
}
};
在这种情况下,应该使用once()
而不是on()
来执行on()
是异步的,用于添加持续接收数据的持久侦听器once()
也是异步的,但它返回时只提供一个与数据快照解析的承诺
const snapshot = await admin.database().ref(`events`).once('value');
events = { ...snapshot.val() }