【问题标题】:How do I create a user in the firebase emulator via cloud function?如何通过云功能在 Firebase 模拟器中创建用户?
【发布时间】:2023-03-16 17:02:01
【问题描述】:

在使用模拟器时尝试通过云功能以编程方式创建用户时,我一直收到有关凭据实现的错误。我没有看到任何凭据问题,因为它是模拟器环境中的管理员 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-credential","message":"通过“credential”属性提供给 initializeApp() 的凭据实现未能获取有效的 Google OAuth2 访问令牌出现以下错误:“获取访问令牌时出错:解析响应数据时出错:“语法错误:JSON 中位置 0 处出现意外令牌

我的理解是,在使用模拟器的时候,包括认证。

作为说明,我从以下位置调用函数:

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

当我使用 firestore 文档中的代码添加文档时,我没有收到任何错误。仅在尝试创建 Firebase 身份验证用户时。

【问题讨论】:

    标签: node.js firebase-authentication google-cloud-functions firebase-tools


    【解决方案1】:

    经过进一步研究/阅读(并更新到最新版本的 firebase/firestore)但仍然不成功,我能够确定需要通过 cli 设置应用程序凭据,就像这样。

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

    • 然后用这个小代码 sn-p 将我的 cli 指向那个文件:

      export GOOGLE_APPLICATION_CREDENTIALS="Users/Jared/Downloads/newproject-1b38d-firebase-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":[]}}
    

    [更新]

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

    【讨论】:

      猜你喜欢
      • 2020-10-30
      • 2018-08-19
      • 2018-12-07
      • 2020-03-18
      • 1970-01-01
      • 1970-01-01
      • 2018-06-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多