如何解决firebase管理节点,权限不足
我已经检查了其他堆栈,但是仍然不确定为什么我得到的权限不足错误。可能我没有安全感。
我正在尝试从2个不同的Firebase帐户同步用户。第一个帐户在第二个帐户上调用Firebase函数。如果用户不存在,它将创建并进行一些数据库编制。如果用户存在,则会创建一个自定义令牌,并将其传递回第一个帐户,以在iframe查询参数中使用。
我已经创建了IAM服务帐户,创建了密钥并保存到文件,并像其他堆栈说明一样编辑了服务令牌权限,但是尽管如此,我还是遇到了错误。这是我的功能开始:
const firebaseConfig = {
credential: admin.credential.applicationDefault(),apiKey: "xxxxxxxxxxxxxxxxxxxxxxx",authDomain: "itsli7-87384.firebaseapp.com",databaseURL: "https://itsli7-87384.firebaseio.com",projectId: "itsli7-87384",storageBucket: "itsli7-87384.appspot.com",messagingSenderId: "503897448704",appId: "1:503897448704:web:45773bfb231a24bbe213e5"
}
fb.initializeApp(firebaseConfig);
admin.initializeApp(firebaseConfig);
该函数正在运行。
return admin.auth().getUser(data.user.uid)
.then(async function () {
return admin.auth().createCustomToken(data.user.uid)
.then(function (customToken) {
res.send(customToken);
})
.catch(function (error) {
console.log('Error creating custom token:',error);
});
代码:身份验证/权限不足
创建自定义令牌时出错:FirebaseAuthError:调用者没有 获得许可;请参阅 https://firebase.google.com/docs/auth/admin/create-custom-tokens的 有关如何使用和解决此功能的更多详细信息。
解决方法
与其使用指定的方法将cred.json添加到admin.credential.applicationDefault(),然后将相同的firebase init配置对象传递给admin init,而是使用以下方法:
var serviceAccount = JSON.parse(fs.readFileSync("cred.json"));
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),databaseURL: "https://itsli7-87384.firebaseio.com"
});
fb.initializeApp(firebaseConfig);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。