所以我已经创建了一个自定义令牌
const token = authRef.createCustomToken(options.userId, {
app: appRootName,
debug: !!options.debug
});
然后尝试签名
return authRef.signInWithCustomToken(token).then((user) => {
return user;
});
自定义创建令牌成功,但signInWithCustomToken会吐出此错误。
TypeError: authRef.signInWithCustomToken is not a function
这是针对nodejs的Firebase 3,并且已设置了服务帐户。应用程序已正确初始化(或令牌生成首先不起作用),这里的问题是什么?
答案 0 :(得分:3)
实际问题是
authWithCustomToken
存在于firebase
中,而不存在于firebase-admin
中,这在使用firebase安全功能时主要使用。
答案 1 :(得分:1)
我得到了同样的错误,希望以下代码可以解决您的问题 小心使用apiKey或serverKey
var firebase = require('firebase')
firebase.initializeApp({
apiKey: '*******',
databaseURL: 'https://*****.firebaseio.com'
})
var customToken = '*********'
firebase.auth().signInWithCustomToken(customToken).catch(function(error) {
var errorMessage = error.message
console.log(errorMessage)
})
答案 2 :(得分:0)
使用CI / CD管道部署时遇到同样的问题。从我当地直接部署到firebase时工作正常。两种方法都使用相同的令牌来部署。我使用的是firebase-admin
最新版本,即5.11.0。
我找到的唯一解决方案是
firebase functions:config:set custom.apikey=KEY_HERE
,functions.config().firebase
检索到的firebase配置,顺便说一句,我们正在通过谷歌云功能托管的nextjs
呈现网页。此呈现的页面与firebase firestore数据库通信。