【问题标题】:Why we pass apikey,databaseurl,storageBucket,Domain, appId, messagingSenderId in Firebase Nodejs Project为什么我们在 Firebase Nodejs 项目中传递 apikey、databaseurl、storageBucket、Domain、appId、messagingSenderId
【发布时间】:2022-01-17 14:40:51
【问题描述】:

在 Nodejs 项目中初始化 Firebase 时,为什么在 Firebase.initializeApp() 中包含 apikey,databaseurl,storageBucket,authDomain,appId,messagingSenderId,projectId?如果没有这些属性,它仍然可以工作,那我们为什么需要通过它呢?

另外为了安全,我们使用 Firebase Authentication 来检查用户 auth.uid,那么为什么我们需要在 initializeApp() 中传递上述属性呢?

是否传递了这些属性,Firebase 会默认检查它吗?如果Firebase默认检查,那我们就不需要Firebase Authentication了?

我是初学者,请帮助。

【问题讨论】:

  • 如果我的回答有用,您可以接受 ✔ 并投票 ???? :) 随时提出进一步的问题。

标签: firebase firebase-realtime-database firebase-authentication google-cloud-functions firebase-cloud-messaging


【解决方案1】:

如今,Firebase 包含超过 18 种产品,其中许多产品在启动时采用不同的配置数据。但是由于您对所有这些产品只调用一次initializeApp,因此您必须在这一次调用中传递所有产品的配置数据。

这就是为什么 Firebase 文档和控制台中的所有示例都展示了如何传递所有可能的配置数据。根据您实际使用的产品和运行的平台,您可能需要较少的这些值,但包括所有这些值不会导致问题。

【讨论】:

【解决方案2】:

当您向 Firebase 项目注册应用时,Firebase 控制台会提供您直接添加到本地应用目录的 Firebase 配置文件(Apple/Android 应用)或配置对象(网络应用)。

也就是说,Firebase 配置文件 / 对象 将应用与特定 Firebase 项目及其资源相关联。项目的非秘密标识符。 Firebase 配置文件通常由 apiKeydatabaseURLprojectIdstorageBucketmessagingSenderId 组成>、appIdmeasurementId

Firebase 和 Google 服务需要这些参数与 Firebase 服务器 API 通信并将客户端数据与 Firebase 项目和 Firebase 应用相关联apiKeyprojectId 是配置文件/对象中的必填字段。并且,其他字段是可选的。其他每个字段都对应于 Firebase 的一个可选部分。

这是因为 Firebase 包含许多 services/products,例如实时 nosql 数据库服务、blob 存储、推送通知/消息传递,当然还有身份验证等等。 如果您不想使用 Firebase 的其他部分,请不要引用它们,也不要启用它们。只使用 Firebase 身份验证完全没问题。

Firebase 配置文件或对象的内容视为公开,包括应用的平台特定 ID(Apple 捆绑包 ID 或 Android 包名称)和 Firebase 项目- 特定值,例如 API 密钥、项目 ID、实时数据库 URL 和 Cloud Storage 存储分区名称。鉴于此,建议使用 Firebase 安全规则来保护您在实时数据库、Cloud Firestore 和 Cloud Storage 中的数据和文件

【讨论】:

  • 太好了。谢谢!
猜你喜欢
  • 1970-01-01
  • 2019-11-20
  • 2021-09-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-29
  • 2016-09-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多