我正在使用 Xcode 8.2 开发一个用 Swift 3.0 编写的 iOS 应用程序,它支持 iOS 8.0 及更高版本。应用程序的数据存储在 Firebase 中。
我想听数据库连接变化(应用程序是否连接到 Firebase)。
我正在使用 FIRDatabaseReference
的函数:
func observe(_ eventType: FIRDataEventType, with block: @escaping (FIRDataSnapshot) -> Swift.Void, withCancel cancelBlock: ((Error) -> Swift.Void)? = nil) -> UInt
观察变化,但这个事件总是返回false(值为0)。此时(在 Firebase 控制台上),Authentication
部分相关查询工作正常,而 Realtime Database
相关查询则不工作。
这仅发生在装有 iOS 8.3 的 iPod 5.1 (5) 上。
我已经在
上测试了我的应用程序- 装有 iOS 8.4.1 的 iPad 2
- 装有 iOS 9.3.5 的 iPod 5.1 (5)
- 装有 iOS 10.0.1 的 iPhone 6
也是。但在这些设备上效果很好。
我做错了什么吗?是否存在与 iOS 版本和 Firebase SDK 相关的问题?
谢谢!
最佳答案
已解决
我把这个问题搁置了一点,一段时间后,它又出现在另一台设备上。
我不确定这是否解决了所有类似的问题,但我想通了,我的 token 已过期,我得到NO来自数据库的响应。哪个问题是由同一用户在另一台设备上更改密码引起的。
第 1 天 - 我在两台不同的设备上使用一个帐户登录。我更改了其中一个的密码。
第 2 天 - 我尝试使用其他设备从 Realtime Database
部分下载一些数据,但没有响应,这是真的很烦人。
8 小时后,Xcode 控制台上的 Firebase Analytics 日志终于帮助我找出了问题所在。我从有问题的设备注销,然后重新登录。
我想知道为什么我不能从服务器获得某种“token_expired”响应,或者为什么我不能从其他设备注销。
关于swift - Firebase 问题 - 使用 iOS 8.3 的 iPod 上的实时数据库没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41245746/