javascript - 无法部署异步 Firebase 功能
问题描述
我正在尝试使用以下功能添加用户角色。该功能应部署为 firebase 功能。
const functions = require('firebase-functions')
const admin = require('firebase-admin')
admin.initializeApp()
const db = admin.firestore()
exports.AddUserRole = functions.auth.user().onCreate(async (authUser) => {
if (authUser.email) {
const customClaims = {
admin: true,
}
try {
let _ = await admin.auth().setCustomUserClaims(authUser.uid, customClaims)
return db.collection('roles').doc(authUser.uid).set({
email: authUser.email,
role: customClaims,
})
} catch (error) {
console.log(error)
}
}
})
当我尝试使用 firebase deploy --only functions:AddUserRole 进行部署时,我收到一个错误 Parsing error: Unexpected token =>并且部署失败。
如果我删除异步/等待它工作得很好,但我需要异步等待这个和未来的功能,所以我想知道我做错了什么。
一些额外的信息。我正在使用节点 v.12.21.0 和所有 firebase 工具/SDK 等的最新版本。
解决方案
我认为您可以删除“_ = ...”并等待在角色中设置新文档的响应并返回它。
这只是一个建议,但我希望它有所帮助。
exports.AddUserRole = functions.auth.user().onCreate(async (authUser) => {
if (authUser.email) {
const customClaims = {
admin: true,
}
try {
await admin.auth().setCustomUserClaims(authUser.uid, customClaims)
//Or whatever you want to call it
const updatedRole = await db.collection('roles').doc(authUser.uid).set({
email: authUser.email,
role: customClaims,
})
return updatedRole
} catch (error) {
console.log(error)
}
}
})
推荐阅读
- qt - QLibrary 冻结调用加载方法
- jquery - How to get next/prev buttons working on ticker?
- android - 访问从 Activity 到 Fragment 的共享首选项
- common-lisp - 知道您正在查看的内容何时必须是宏
- vb.net - Telerik Radgrid RenderMode 在移动设备上不起作用
- c# - 解析 "\ENABLED" - 无法识别的转义序列 \E
- python - pyqt5:数据库上的数据更改后正确更新QTreeView
- bash - Bash shell 从 IP 地址列表中生成 RANGE
- java - 使用 Base 64 解码数据时出现垃圾字符
- java - 从 1 到 N 的所有数字的总和始终为零