我在我的应用中使用匿名用户并拥有仅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)
})
});
答案 0 :(得分:0)
可以通过req.headers.authorization
获得触发HTTP功能的用户。
有关示例链接以及使用可调用HTTPS功能的其他选项,请参见以下答案:How to protect firebase Cloud Function HTTP endpoint to allow only Firebase authenticated users?