【问题标题】:What is the correct way to setup webpack.config.js to run the firebase admin sdk设置 webpack.config.js 以运行 firebase admin sdk 的正确方法是什么
【发布时间】:2021-07-23 02:39:00
【问题描述】:

现在我正在尝试为我尝试创建的 firebase 项目设置 firebase 管理员。该项目是一个管理站点,应该将数据上传到应用程序。关键是创建一个受信任的人可以访问的站点,这样这些人就不必登录项目所有者的电子邮件来输入这些数据。该网站还应该帮助管理这些用户。我需要能够使用 firebase 管理功能来创建和编辑用户。

因此,我需要将 Admin SDK 添加到我的项目中。它说要将它添加到我所拥有的 Node.js 项目中。我按照基本设置的所有说明进行操作。然后我尝试从我的 html 页面中的函数初始化管理函数。我意识到我可以通过外部文件来做到这一点,但是作为许多这些功能的新用户并且之前尝试设置这些外部文件时遇到了很大的麻烦,我觉得我现在应该在页面中设置这个东西让所有功能正常工作,然后稍后将其全部移至外部文件。但是,当我尝试测试我的代码时,我收到了 require is not defined 错误。我做了一些研究以找到解决方案,并找到了module.config.js 方法。我试图按照他们的方式进行设置,但问题与运行 Firebase SDK 有关。这是我第一次听说 Webpack 并且没有大量的网页设计背景。你可以说它是一个爱好自动取款机。

基本上,我需要帮助设置此配置文件以便我可以运行

var admin = require("firebase-admin");

var serviceAccount = require("path/to/serviceAccountKey.json");

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount)
});

我从https://webpack.js.org/configuration/ 复制并粘贴了基础webpack.config.js 文件

并将它放在我的目录中,如下所示: 主文件夹: https://i.imgur.com/hwMHEXh.png

dist 中的文件基本上是我的整个项目: https://i.imgur.com/1tnY1gr.png https://i.imgur.com/gtUL79l.png

有人可以解释运行管理员初始化需要做什么,以便我可以在我的项目上运行用户编辑命令吗?我知道一旦设置好我需要做什么,但我不知道我需要做什么来设置它,所以一旦我完成了这个,我就差不多了。

【问题讨论】:

  • 这是一个节点应用程序吧?还是您尝试在网络应用中使用 Firebase Admin?
  • 在 firebase 项目的分类下,它是一个 web 应用程序,当我将它部署到 firebase 时,它​​就是这样分类的。但是,我最初使用 node.js 和 npm 创建项目。所以我相信这是一个 node.js 项目被上传到一个网络应用程序。它确实有节点模块等。这是一个问题吗?据我所知,我正在尝试在一个项目上设置 Firebase Admin SDK,以便在 Firebase 中作为 Web 应用程序运行,但拥有 node.js 应用程序的所有文件,我相信它是 node.js项目。

标签: javascript html firebase webpack firebase-authentication


【解决方案1】:

文档中也提到了,

如果您有兴趣将 Node.js SDK 用作最终用户访问的客户端(例如,在 Node.js 桌面或 IoT 应用程序中),而不是从特权环境(如服务器)进行管理员访问),您应该改为关注instructions for setting up the client JavaScript SDK.

即使你安装了节点模块但环境不是 NodeJS,它也是一个浏览器。此外,Admin SDK 对您的 Firebase 项目具有特权访问权限,不应在客户端使用,因为任何人都可以使用它并获得完全访问权限。 无论如何,您将如何将 Web 应用程序限制为特定用户? Firebase 托管没有这样的选择。

您应该考虑使用 Firebase Callable Functions 并在其中使用 Admin SDK。然后只需根据需要从您的网络应用程序调用您的函数。您可以在云功能中对用户进行身份验证并进行所有验证,因此更加安全。

【讨论】:

  • 我只是想检查一下,因为可调用函数的文档并不像我希望的当前曝光级别那样清晰。我应该能够使用 Functions.https.onCall 运行 admin.auth().updateUser(uid,{...});以及写入和读取 Firestone 和其他数据库的功能?如果是这种情况,我相信是这样,您能否举一个设置 updateUser 调用的示例。如果我打算改用它,我希望看到一个执行该特定命令的好例子,因为他们没有在链接文档中讨论它。
  • @JoshSolders 结帐this answerthis。我已经解释了设置可调用函数并从前端调用它们。
  • TBH,我看了,还是不太明白。我可能对这个或其他东西有点太陌生了。无论如何,它并不是真正的点击。如果您刚刚删除了 updateUser 命令的示例,这将非常有帮助。只需展示如何使用我熟悉的命令进行设置,这对我来说就简单多了。我确实理解,考虑到当您给我这么多示例时我无法弄清楚这一点,我可能看起来有点愚蠢,所以我感谢您的时间和耐心。但是,你能不能帮我做一下,这样我才能完全理解如何使用它
猜你喜欢
  • 2016-05-30
  • 1970-01-01
  • 2020-06-27
  • 2017-12-17
  • 1970-01-01
  • 2012-11-19
  • 1970-01-01
  • 2021-12-06
  • 1970-01-01
相关资源
最近更新 更多