【问题标题】:How to create new Firebase Realtime Database Instance using Cloud Functions?如何使用 Cloud Functions 创建新的 Firebase 实时数据库实例?
【发布时间】:2021-07-19 11:02:45
【问题描述】:

我一直在使用 firebase 进行不同类型的带有 firestore 的项目。但是,由于低并发连接和一些因素,我没有使用实时数据库。 Firestore 也有一些限制,例如每个数据库每秒 10000 个。当我将 firestore 与实时数据库进行比较时,可以使用实时数据库管理许多数据库的高流量。我红色了不同的文章和堆栈溢出问题,他们提到使用云任务和云调度程序来管理 Firestore 中的写入失败。但是,我的问题是,

我可以使用云功能创建实时数据库吗?

每个项目可以创建多少个实时数据库?我将为每个用户创建一个数据库,如果有 100 万用户 = 100 万个实时数据库

【问题讨论】:

标签: firebase firebase-realtime-database


【解决方案1】:

您可以使用Firebase Realtime Database Management API 从云函数创建新的实时数据库实例。您需要具有以下范围的访问令牌:

[
  'https://www.googleapis.com/auth/cloud-platform',
  'https://www.googleapis.com/auth/firebase'
]

现在最简单的方法是在您的云功能中使用googleapis 节点模块以及您的服务帐户。

const { google } = require('googleapis');

exports.createDbInstance = functions.https.onCall((data, context) => {
  const auth = new google.auth.GoogleAuth({
      keyFile: __dirname + '/serviceAccountKey.json',
      scopes: ['https://www.googleapis.com/auth/cloud-platform']
  });

  const accessToken = await auth.getAccessToken()
  const response = await google.firebasedatabase("v1beta")
          .projects
          .locations
          .instances
          .create({ 
            databaseId: "new-db-id", 
            parent: "projects/[PROJECT-ID]/locations/[LOCATION]",
            access_token: accessToken 
          })
  console.log(response)
  return {data: "New Database Created"}
});

您可以从此处下载服务帐户 JSON 文件:https://console.firebase.google.com/u/0/project/_/settings/serviceaccounts/adminsdk

理想情况下,这不应该是没有身份验证的可调用函数。确保您实现自己的逻辑,以便只有授权的人才能调用此函数。

[PROJECT-ID] 是您要在其中创建数据库的项目的 ID。

[LOCATION] 是您要在其中创建数据库的位置。Here 是可用位置的列表。

【讨论】:

  • @Dharmaraja,让我试试,我会告诉你的,谢谢。
  • @IsuruBandara 当然。您可以创建一个新的节点项目并粘贴代码并将其作为快捷方式运行;)
  • @Dharmaraja 我们可以用这个功能更新实时数据库规则吗?
  • @IsuruBandara 是的,您可以使用REST API更新安全规则
  • 谢谢你,伙计。最后一个问题。您认为每个用户的实时数据库实用吗?成像如果我们有 100 万用户,则意味着 100 万个数据库,每个数据库可以有 20 万个同时连接。
猜你喜欢
  • 2019-10-03
  • 2017-09-14
  • 2018-05-31
  • 2017-11-12
  • 2020-07-11
  • 2021-04-04
  • 1970-01-01
  • 1970-01-01
  • 2019-09-25
相关资源
最近更新 更多