Firebase URL 重写为函数和目标

Posted

技术标签:

【中文标题】Firebase URL 重写为函数和目标【英文标题】:Firebase URL rewriting to both functions and destinations 【发布时间】:2018-03-15 06:13:28 【问题描述】:

我正在构建一个 React/Redux 应用程序并尝试重写为一个 Firebase 函数,而所有其他 URL 都重写为 index.html

现在,当我在 Chrome 浏览器上执行“空缓存和硬重新加载”时,我只能获得一个 URL 来重写该函数。

这是我的 firebase.json 文件。


  "database": 
    "rules": "database.rules.json"
  ,
  "hosting": 
    "public": "build",
    "rewrites": [
       
         "source": "/Photos/**", "function": "getPhoto"
       ,
       
         "source": "**", "destination": "/index.html"
       
     ]
  

例如,当我转到https://nameofmyapp.firebaseapp.com/Photos/2017/October/2/12345 时,我被路由到根目录(index.html),而我期望被定向到getPhoto 函数。

我唯一能够访问“/Photos/**”重写 URL 的情况是,首先在浏览器中输入 https://nameofmyapp.firebaseapp.com/Photos/2017/October/2/12345 URL,然后在 Chrome 中执行“空缓存和硬重新加载”。这是唯一一次为我执行该功能。 (不确定这是否与 service-worker 行为有关?) 即便如此,在正常刷新该 URL 时,我最终还是回到了 index.html。

谁能告诉我我错过了什么?

【问题讨论】:

【参考方案1】:

我刚刚发布了very similar problem 的答案

你需要改变你的“单一应用重写”:


  "hosting": 
    "public": "build",
    "rewrites": [
       
         "source": "/Photos/**", "function": "getPhoto"
       ,
       
         "source": "!/Photos/**", "destination": "/index.html"
       
     ]
  

此规则不是重定向 index.html 上的所有内容(如“**”),而是重定向不在照片文件夹和子文件夹中的所有内容。

【讨论】:

以上是关于Firebase URL 重写为函数和目标的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Firebase Firestore 中存储下载 URL

Firebase.db.collection 不是函数 || Firebase v9 ||将集合文档设置为状态时引发错误

迁移到打字稿后,Firebase 云功能无法正常工作

@angular/fire AngularFireStorage getDownloadUrl()

Firebase SPA 重写规则不重定向到 index.html

如何修复:“@angular/fire”'没有导出成员 'AngularFireModule'.ts(2305) ionic、firebase、angular