【发布时间】:2018-03-17 03:53:21
【问题描述】:
在运行 Express 的 Firebase Cloud Function 中,当客户端将令牌发布到 setCustomClaims 路由时,我试图设置自定义用户声明。当我在该路由中调用admin.auth().setCustomUserClaims(uid, {admin: true}) 时,我收到一条错误消息,指出这“不是函数”。
我的身份验证提供商是通过 Firebase 身份验证的电子邮件/密码提供商(即我没有创建自定义令牌)。
我是否必须创建自定义令牌才能设置自定义用户声明?
这是我的云功能代码:
const functions = require('firebase-functions');
const admin = require("firebase-admin");
import express from "express"
admin.initializeApp(functions.config().firebase);
const app = express()
app.post('/setCustomClaims', (req, res) => {
uid = "some-uid"
admin.auth().setCustomUserClaims(uid, {admin:true}).then(()=> {
res.end(JSON.stringify( { status: 'success' } ) );
})
});
export let api = functions.https.onRequest((request, response) => {
if (!request.path) {
request.url = `/${request.url}` // prepend '/' to keep query params if any
}
return app(request, response)
})
【问题讨论】:
-
是不是说
setCustomUserClaims不是函数?或者res.end(错字也出现在您的真实代码中? -
确切的错误是:TypeError: admin.auth(...).setCustomUserClaims is not a function。
-
setCustomUserClaims是最近在version 5.3 of the Firebase Admin SDK for Node.js 中引入的。你能检查一下你使用的是哪个版本的firebase-admin? -
啊!我正在运行 5.2.1。我现在要更新了。谢谢你,弗兰克。
-
在 "firebase-admin": "^8.12.1" 它不起作用,我遇到了同样的问题! @sketchedin
标签: javascript firebase firebase-admin