gpt4 book ai didi

javascript - firebase JS SDK包是否兼容云功能的Node.js环境?为什么要使用 firebase-admin?

转载 作者:行者123 更新时间:2023-12-05 00:36:43 25 4
gpt4 key购买 nike

我知道如果您在服务器环境中,使用 firebase-admin 可能更有意义。 SDK,它将授予您 管理员 受信任环境中的状态,例如来自云功能的环境。
但是这两个包总是让我感到困惑:firebase JS SDK 和 firebase-admin .
请参阅 firebase 的摘录JS SDK
https://www.npmjs.com/package/firebase

This SDK is intended for end-user client access from environments such as the Web, mobile Web (e.g. React Native, Ionic), Node.js desktop (e.g. Electron), or IoT devices running Node.js. If you are instead interested in using a Node.js SDK which grants you admin access from a privileged environment (like a server), you should use the Firebase Admin Node.js SDK.


很长一段时间,我以为 firebase JS SDK 完全不兼容 Node.js 环境的云功能,那仅仅是存在还是简单的 import * as firebase from "firebase/app";可能会破坏我函数的代码。但我今天了解到,事实并非如此。是吗?
理论上,我可以使用 firebase从云功能的 Node.js 环境调用 firebase 服务的包?
除了拥有管理员权限之外,如果我只想做一个简单的任务,比如阅读 firestore文档,有什么理由让我更喜欢使用 firebase-admin而不是 firebase JS SDK 包?

最佳答案

您可以使用firebase在 Node.js 环境中访问某些服务。但是,这些服务调用将像最终用户一样进行。这意味着 Firebase 后端服务器中的所有安全规则、每用户请求配额和滥用预防机制都会发挥作用。如果您的规则只允许经过身份验证的用户访问 Firestore,那么您必须在调用 Firestore 之前作为服务器中的最终用户进行身份验证。每次调用云函数都必须这样做,因为函数不保持状态。从同一个 IP block 运行如此多的身份验证尝试可能最终会触发一些滥用预防保护措施,并导致错误。
根据经验,客户端应用程序使用客户端 SDK,服务器端应用程序使用服务器/管理 SDK。有时你可能想改变这条规则。但这应该是与常态相反的异常(exception),并且只有在仔细考虑后才能进行。

关于javascript - firebase JS SDK包是否兼容云功能的Node.js环境?为什么要使用 firebase-admin?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63729258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com