Firebase编辑规则授予不同客户端脚本单独的能力.没有服务器的授权)

Firebase edit rules granting separate abilities to different client scripts (aka. auth without a server)

本文关键字:能力 服务器 授权 单独 脚本 规则 编辑 客户端 Firebase      更新时间:2023-09-26

经过广泛的搜索(大约一个月),我终于放弃了。不过,我还是想问一下,因为谁知道呢,也许以前有人这样做过。

我有两个js脚本,标记,为了方便,客户端和服务器。我还有两个Firebase数据库:client_input和server_output。其思想是,客户机将请求写入client_input,服务器读取client_input ->处理数据->写入server_output,客户机读取server_output ->将数据呈现给用户。这是完美的。

问题是我不知道如何根据脚本的类型来限制读/写能力。我尝试使用auth和Firebase_secret,但显然你需要一个服务器。最终,我希望实现以下规则:

client_input { ".read": "server === true", ".write": "true" }
server_output { ".read": "true", ".write": "server === true" }

您可以使用GitHub (https://github.com/firebase)上的firebase令牌生成器之一和firebase secret创建访问令牌。有许多语言的生成器,您只需要为每个进程创建一个,然后使用它来验证而不是秘密。当您这样做时,您可以访问您在使用安全规则中的auth变量创建令牌时放入令牌中的任何数据。

例如,您可以创建两个令牌-一个是{ "uid": "client" },一个是{ "uid": "server" },然后在规则引用".write": "auth.uid === 'server'"