首页 > 解决方案 > 如何使用 NodeJS 在 Firebase 模拟器中模拟身份验证多租户?

问题描述

我正在使用带有 nodejs firebase-admin-sdk 的 firebase 身份验证多租户。

当我尝试使用 firebase 模拟器套件创建身份验证租户时,我收到 404 错误。但是如果我使用我的生产火力库,同样的代码可以工作。

您可以通过在 nodejs 运行时运行以下代码来重现错误。我假设您正在运行 firebase 模拟器,并且您有一个带有服务帐户配置的 firebase 项目

const admin = require('firebase-admin')

process.env["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/serviceaccount.json" // replace with the path to your google cloud service account config
process.env['FIREBASE_AUTH_EMULATOR_HOST'] = "localhost:9099" // firebase emulator auth port


admin.initializeApp({
  credential: admin.credential.applicationDefault()
});


admin.auth().tenantManager().createTenant({
    displayName: 'Tenant123',
    emailSignInConfig: {
      enabled: true,
      passwordRequired: false, // Email link sign-in enabled.
    }
  })
  .then(newTenant => {
    console.log('new tenancy created', newTenant)
  })
  .catch(error => console.error(error))

标签: node.jsfirebasegoogle-cloud-platform

解决方案


Firebase Admin SDK 支持 Firebase 身份验证多租户。出于测试 Firebase 产品和服务的目的,我们将 Firebase 模拟器与 Firebase Admin SDK 结合使用,Firebase 身份验证多租户支持需要 Google Cloud 的身份平台 (GCIP)。

因此,我们不能在 Firebase Local Emulator 内部使用 Firebase Authentication Multi-tenancy,因为目前模拟器内部没有 Multi-tenancy 的功能。

如果您想拥有此功能,您可以在 Firebase 中提出功能请求


推荐阅读