首页 > 解决方案 > Firebase RTDB 读取拒绝响应

问题描述

寻找一种在用户的访问权限被撤销时向用户显示来自 Firebase 的权限被拒绝消息的方法。在日志中,我可以看到路径和拒绝消息([Firebase/Database][I-RDB038012] Listener at failed: permission_denied),但我不知道如何将其发送给用户。

我想这将是updadeChildValues(_:withCompletionBlock:)- 用于读取数据库observe的读取等价物。observeSingleEvent

我已经尝试过自己的完成块,例如

if snapshot.exists {
print("exists")
} else {
print("does not exist") 

但没有运气......将 Swift 与 Firebase 实时数据库结合使用。相当新,如果我的术语有误,请道歉。

标签: swiftfirebasefirebase-realtime-database

解决方案


你正在寻找observe(_:with:withCancel:). 在此重载中,您传入第二个回调块,当侦听器被取消时调用该块(通常是因为它没有读取权限)。

请参阅 https://firebase.google.com/docs/reference/swift/firebasedatabase/api/reference/Classes/DatabaseQuery#observe_:with:withcancel

有关这方面的示例,请参阅有关使用观察者读取数据的文档中的代码片段。


推荐阅读