列出用户的firebase云函数不会返回用户的uid

时间:2019-11-14 21:46:10

标签: node.js firebase google-cloud-firestore google-cloud-functions firebase-admin

我实现了一个列出所有角色为“用户”的用户的功能。该函数返回所有用户,但是,我希望将uid附加到用户上,以便在客户端上进行静态路由。

exports.listUsers = functions.https.onRequest(async (request, response) => {
  response.set('Access-Control-Allow-Origin', '*');
  const snapshot = await admin.firestore().collection('users').where('role', '==', 'users').get();
  const users = snapshot.docs.map(doc => doc.data());
  response.send(JSON.stringify(users));
});

如何将uid附加到用户对象上?

1 个答案:

答案 0 :(得分:0)

我有根据的猜测是,您将UID用作文档ID。由于文档ID不是document.data()的一部分,因此不会与您当前的代码一起返回。

解决方法是显式添加ID:

const users = snapshot.docs.map(doc => { id: doc.id, data: doc.data() });

如果您的文档没有id字段,您还可以将ID与这些字段合并,如下所示:

const users = snapshot.docs.map(doc => { id: doc.id, ...doc.data() });