【问题标题】:Can three web-pages be inside the same project in Firebase (Firebase Hosting)?Firebase(Firebase Hosting)中的同一个项目中可以三个网页吗?
【发布时间】:2018-11-05 05:33:49
【问题描述】:

假设我在 Firebase 中创建了一个名为 ExampleApp 的项目。

我创建了一个页面,其中包含要提交的表单。它由 Firebase 托管。当用户填写表单并点击提交按钮时,数据库(Cloud Firestore)正在存储用户提交的数据。

应该有一种方法可以将这些数据精美地呈现给负责分析它的人。

因此,某些负责读取数据的特定人员需要能够使用我创建的一些凭据登录,然后才能看到整齐有序的数据。

因此,鉴于我需要创建另一个网页(或任何允许我完成任务的任何内容),以便管理员可以通过身份验证(带有用户名/密码表单的页面)访问并查看数据库在漂亮的布局中,我是否需要在 Firebase 中创建另一个项目?

如果我能在 Firebase 的同一个项目中实现所有这些,那就太好了,但 Firebase 托管似乎只能托管一个网页,对吧?

它们都可以拥有相同的域。

【问题讨论】:

    标签: html css firebase firebase-authentication firebase-hosting


    【解决方案1】:

    您可以在 Firebase 托管目录中沿 index.html 页面添加任意数量的页面(顺便说一下,您可以重命名该页面)。您甚至可以使用子目录来组织它们。所有这些都在一个 Firebase 项目中完成。

    需要了解的重要一点是,您的页面不会受到身份验证/授权的保护,而是页面中显示的数据

    例如,任何拥有其 URL 的人都可以访问带有“组织精美的数据”的页面,但如果没有正确的身份验证/授权,用户将看不到应该在此页面中显示的数据,即将到来来自 Firebase 数据库(实时数据库或 Firestore)。您可以通过在数据库级别设置正确的安全规则来确保这一点。

    因此,换句话说,容器是完全公开的(对于知道如何使用其 URL 调用它们的人),但 内容 是受保护的通过 Firebase 身份验证机制AND您在数据库级别声明的安全规则(授权)。

    【讨论】:

    • 好的。因此,“公共”文件夹中可能有多个 html 文件。如何从一个页面过渡到另一个页面?可以举个例子吗?
    • 您的操作与在由一组页面组成的“标准”HTML 网站中完全一样。通过使用<a href="..."> 标签在这些页面之间建立链接。现在,如果你使用像 Vue.js 或 Angular 这样的前端框架,链接(和导航)将通过使用路由器来完成,但最终它是相同的机制。
    • 请注意,您可以有“动态链接”,即在一个页面中生成一个包含 Firestore 文档 ID 的超链接,例如 https://xxxxx/displayUser.html?userId=AZERTY1234 并在 displayUser.html 中通过 queryString 获取 userId,从数据库中获取用户AZERTY1234 的数据并显示其详细信息。
    • 真棒雷诺!因此,对于每个网页,我都有单独的 html/css 和 js 文件。我是否需要在 html 中初始化内容(如 firebase 文档所述),然后将 var config = { apiKey: "xxxx", etc..} 和之后的 firebase.initializeApp(config); 放入每个处理 firebase 逻辑的 .js 文件中?
    • 在这种情况下,是的,应为所有页面重复 Firebase 配置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多