Firebase:在 permission_denied 后注意重新连接
Firebase: watch for reconnect after permission_denied
我构建了一个允许用户将他们的应用程序状态流式传输给其他用户的应用程序。主播可以决定直播是否 public。如果流是 public,Firebase 中设置了一个标志,允许其他人通过获取对象的 URL 来访问它(否则,他们会得到 permission_denied
)。
可以在广播进行时更改此标志。如果是,它会强行断开所有观看广播的客户端。那部分是有道理的。我似乎无法弄清楚的是如何观察重新连接,以防它再次出现 public。文档中似乎没有任何关于从这个特定状态恢复或观察重新连接的内容。客户唯一可以做的就是经常按 F5,如果他们已经获得 link 广播并且想早点去那里,这不是一个好的解决方案。
那么,我的问题是:即使您收到了 permission_denied
,是否可以监视与 Firebase 对象的重新连接?如果是,怎么做?
或者最好始终允许权限,但在对象准备好之前将数据隐藏在对象中(即允许读取对象,但 none 其属性)?
是的,最好授予对对象 metadata
的访问权限,但限制对 content
的访问(通过 fb 权限)。然后,在您的客户端,您只观察 metadata
的变化。这也会更精确,流量更少。
我构建了一个允许用户将他们的应用程序状态流式传输给其他用户的应用程序。主播可以决定直播是否 public。如果流是 public,Firebase 中设置了一个标志,允许其他人通过获取对象的 URL 来访问它(否则,他们会得到 permission_denied
)。
可以在广播进行时更改此标志。如果是,它会强行断开所有观看广播的客户端。那部分是有道理的。我似乎无法弄清楚的是如何观察重新连接,以防它再次出现 public。文档中似乎没有任何关于从这个特定状态恢复或观察重新连接的内容。客户唯一可以做的就是经常按 F5,如果他们已经获得 link 广播并且想早点去那里,这不是一个好的解决方案。
那么,我的问题是:即使您收到了 permission_denied
,是否可以监视与 Firebase 对象的重新连接?如果是,怎么做?
或者最好始终允许权限,但在对象准备好之前将数据隐藏在对象中(即允许读取对象,但 none 其属性)?
是的,最好授予对对象 metadata
的访问权限,但限制对 content
的访问(通过 fb 权限)。然后,在您的客户端,您只观察 metadata
的变化。这也会更精确,流量更少。