Firebase 没有用户概念的REST授权
是否有任何方式可以进行某种授权,只允许最近从Firebase主机请求页面的人能够向Firestore db发送HTTP POST请求并通过 我的页面基本上是一个HTML表单,可以将数据发布到Firestore页面,不过如果至少有一个页面需要事先与服务器对话,那就太好了,因为人们不必登录来发布信息 [编辑] 要求:Firebase 没有用户概念的REST授权,firebase,rest,google-cloud-firestore,firebase-hosting,Firebase,Rest,Google Cloud Firestore,Firebase Hosting,是否有任何方式可以进行某种授权,只允许最近从Firebase主机请求页面的人能够向Firestore db发送HTTP POST请求并通过 我的页面基本上是一个HTML表单,可以将数据发布到Firestore页面,不过如果至少有一个页面需要事先与服务器对话,那就太好了,因为人们不必登录来发布信息 [编辑] 要求: 提供静态HTML表单(包括一些Javascript) 只有当客户端在合理的时间范围内实际从服务器请求页面时,才应将HTML表单的内容发布到firestore数据库 一般来说,一些最
- 提供静态HTML表单(包括一些Javascript)
- 只有当客户端在合理的时间范围内实际从服务器请求页面时,才应将HTML表单的内容发布到firestore数据库
- 一般来说,一些最近没有请求页面的外部代码应该无法将数据发布到数据库。这只是一个小小的限制,可以缓解任何过于简单的“攻击”
- 没有用户或登录的概念
- 所有请求都应该通过REST完成,因为包含Firebase SDK对于这个小项目来说太大了
方法#2在写入之前,使用Firestore安全规则进行检查
有趣!在第一种方法中,云函数将在请求时生成一个空文档(如果一段时间后文档中没有任何内容,则删除),并让客户机向firestore数据库发送应该写入的内容?除了HTML页面本身,所有的东西都要通过云函数吗?我知道第一步是让用户获得一个HTML页面(一个表单或任何其他页面):想法是通过云函数来服务这个页面,云函数除了生成(静态)HTML外,还在数据库中保存一个唯一的ID。很难详细说明,因为我对您的详细需求没有完全清楚的了解(如果可以的话,您的问题有点模糊)。另一种可能是保持静态页面不变(即直接由托管服务提供服务),但是在本页面中,您通过JS SDK(或REST API)调用Firestore在数据库中保存唯一的ID。这意味着您不再需要云功能,但您需要允许对特定集合进行写访问。有许多可能的变化,但您的要求不够精确,我们无法指出最佳的要求。我尝试在编辑后详细说明这些要求,希望这会有所帮助。好的,很好,你提供了更多的细节!您所说的“仅当客户端实际从服务器请求页面时”是什么意思?你是说其他也通过托管服务提供的页面吗?我确认您可以通过Firestore REST API实现我的回答中描述的机制。