如何通过云功能在firebase模拟器中创建用户?



当尝试在使用模拟器时通过云函数以编程方式创建用户时,我始终得到关于凭据实现的错误。我没有看到任何凭证问题,因为它是模拟器环境中的管理SDK。

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp({projectId: 'mytestapp' } );
exports.createuser = functions.https.onRequest((request, response) => {
admin.auth().createUser({
email: request.query.email,
emailVerified: false,
password: request.query.password,
disabled: false,
})
.then((userRecord) => {
// See the UserRecord reference doc for the contents of userRecord.
response.json({ success: userRecord })
return null
})
.catch((error) => {
response.json({ error: error })       
});
})

我得到的错误是:

{"error":{"code":"app/invalid- credentials ","message";属性未能获取有效的Google OAuth2访问令牌,并出现以下错误:"获取访问令牌错误;解析响应数据时出错;"SyntaxError:意外的令牌"在JSON中的位置0"原始服务器响应:"

我的理解是,当使用模拟器时,包括身份验证。

作为注意,我从

调用函数:
localhost:5001/newproject-1b38d/us-central1/createuser?email=Jared@test.com&password=123456

当我使用firestore文档中的代码添加文档时,没有出现错误。只有在尝试创建Firebase身份验证用户时。

在进一步研究/阅读(并更新到最新版本的firebase/firestore)之后,仍然没有成功,我能够识别需要设置应用程序凭据,就像cli这样做的那样。

  • 我从firestore控制台下载服务帐户文件。

  • 然后用这个小代码片段将我的cli指向该文件:

    export GOOGLE_APPLICATION_CREDENTIALS ="用户/Jared/下载/是否- 1 - b38d -重火力点adminsdk k9lmw - 8070573114. - json"

这给了我以下成功消息:

{"success":{"uid":"6yaEOww1PSU1G5smimLo7qMCfty2","email":"jaredgibb@gmail.com","emailVerified":false,"disabled":false,"metadata":{"lastSignInTime":null,"creationTime":"Sun, 29 Aug 2021 15:48:26 GMT"},"tokensValidAfterTime":"Sun, 29 Aug 2021 15:48:26 GMT","providerData":[]}}

(更新)

奇怪的是,用户是在实时后端创建的。不是模拟器。但是错误消失了。只是现在我有一堆用户需要删除。

相关内容

  • 没有找到相关文章

最新更新