如何在Firebase Firestore中创建与用户相关的数据

时间:2018-05-20 15:19:26

标签: javascript firebase firebase-authentication google-cloud-functions

我在我的应用中使用匿名用户并拥有仅user

创建uid的功能
export const createUserObject = functions.auth.user().onCreate((user, context) => {
  const userData = {"uid": user.uid}
  admin.firestore().collection("users").doc(user.uid).set(userData).then(writeResult => {
    console.log('User Created result:', writeResult);
  }).catch(err => {
    console.log(err);
  });
});

现在我想为用户添加另一个端点来创建note。我计划通过2个字段contentuid来记录自己的集合,以便引用给创建它的用户。

Firebase功能是否有办法为触发的用户检索uid?所以我可以写这样的东西,或者我必须让用户一起发送它吗?

export const addNote = functions.https.onRequest((request, response) => {

  if(request.method !== "POST"){
    response.sendStatus(404)
    return;
  }
  const content = request.body.content

  const data = {
    content: content,
    uid: HOW_CAN_I_GET_CURRENT_USER
  };

  let db = admin.firestore()

  return db.collection("notes").add({content: content}).then((ref) => {
     response.sendStatus(201)
  })
});

1 个答案:

答案 0 :(得分:0)

可以通过req.headers.authorization获得触发HTTP功能的用户。

有关示例链接以及使用可调用HTTPS功能的其他选项,请参见以下答案:How to protect firebase Cloud Function HTTP endpoint to allow only Firebase authenticated users?