Как создать данные, связанные с пользователем в Firebase Firestore - PullRequest
0 голосов
/ 20 мая 2018

Я использую анонимного пользователя в своем приложении и имею функцию, которая создает 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 полями content и uid, чтобы сослаться на пользователя, который ее создал.

Есть ли способ для функции 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 голосов
/ 12 июля 2018

Пользователь, запустивший функцию HTTP, доступен через req.headers.authorization.

См. В этом ответе ссылку на образец и другую опцию, использующую функции Callable HTTPS: Как защитить конечную точку HTTP функции Firebase, чтобы разрешить только пользователям, прошедшим проверку подлинности Firebase?

...