【问题标题】:What exactly is "source" in the context of Firebase rewrites?在 Firebase 重写的上下文中,“源”到底是什么?
【发布时间】:2019-05-25 10:53:10
【问题描述】:

我已多次阅读 Firebase 文档并观看其他教程,但没有一个明确解释来源是什么。 那么用 Layman 的话来说,下面代码上下文中的 source 到底是什么?

"hosting": {
  // ...

  // Add the "rewrites" attribute within "hosting"
  "rewrites": [ {
    "source": "/bigben",
    "function": "bigben"
  } ]
}

【问题讨论】:

  • 所以...感谢其他人的回答,我意识到源只是一个 URL ..但请帮助我,因为我很想知道...是来自的 URL(源)正在访问我的网站的客户端用户?

标签: firebase google-cloud-functions firebase-hosting


【解决方案1】:

通过声明一个重写,如下

"rewrites": [ {
    "source": "/bigben",
    "function": "bigben"
  } ]

正如documentation 中所述,您实际上“将托管请求直接发送到您的函数”。


如果您查看有关如何configuring the rewrites 的文档,您会看到

  "rewrites": [ {
    "source": "/foo{,/**}",
    "destination": "/index.html"
  } ]

rewrites 属性包含一个重写规则数组,其中每个 规则必须包括:

  • 来源指定全局模式

  • 一个destination,这是一个必须存在的本地文件

通过做

  "rewrites": [ {
    ...
    "function": "bigben"
  } ] 

而不是

  "rewrites": [ {
    ...
    "destination": "...."
  } ]

您将重定向到bigben 函数,如here 所述。


因此,“用外行的话来说”,平台将来自一个或多个来源的传入请求重定向到一个或多个目的地,在您的情况下,重定向到目的地是一个云函数。

【讨论】:

  • "指定 glob 模式的源" -> 我知道 glob 模式是什么,但在那里指定 glob 模式的目的是什么?为什么需要指定 glob 模式?
  • “来自一个或多个来源” -> 那么什么是来源?它的意思是否与简单的英语单词“来源”不同,例如事物的来源地或起源?
  • source 本质上是传入 URL 的路径。
  • @MikeKim 很难理解你不理解的东西! :-) 重定向将 一个 URL 重定向到 另一个 URL。第一个是 URL,第二个是目标 URL。从浏览器的角度来看,它并不完全像“事物来自的地方或来源”,它更像是被另一个 URL(目的地)替换的原始 URL。
  • 嗯,我明白了...所以源 URL 来自访问我网页的客户端用户,对吗?
【解决方案2】:

https://firebase.google.com/docs/hosting/functions

Cloud Functions for Firebase 可让您自动运行后端代码以响应 HTTPS 请求。您的代码存储在 Google 的云中并在托管环境中运行。无需管理和扩展您自己的服务器。

有关与 Firebase 托管集成的 Cloud Functions 的用例和示例,请访问我们的无服务器概述。

【讨论】:

    猜你喜欢
    • 2011-05-26
    • 2011-07-21
    • 2017-07-07
    • 2012-03-12
    • 2013-05-29
    • 2011-04-24
    • 2022-11-22
    • 2013-10-12
    相关资源
    最近更新 更多