ios - 如果没有连接,则不会调用 Firebase withCompletionBlock

标签 ios firebase

我正在使用以下内容:

Firebase *fb =[[Firebase alloc] initWithUrl:url];
            [fb setValue:d withCompletionBlock:^(NSError *error, Firebase *ref) {
                if (error) {
                    // bad news
                } else {

                }
            }];

如果您有连接,这似乎工作得很好,如果没有,似乎永远不会调用回调。如果是这种情况,我是否需要将整个内容包装在 connectedRef 中?似乎有很多额外的工作,当我猜想完成 block 只会失败并显示错误状态为不在线时。

还有其他人遇到这个问题吗?

最佳答案

Firebase 背后的理念是为您同步数据。它不仅仅是一个简单的请求/响应系统。因此,如果您在离线时执行 setValue,Firebase 将保留该数据,直到您 在线,然后它会在那时执行 setValue(然后调用完成 block )。

所以您看到的行为是预料之中的。如果您只想在在线时执行 setValue,那么是的,您需要使用 .info/connected 观察器。但是,如果您在尝试执行 setValue 或类似操作时离线,您仍然可能会遇到问题。一般来说,最好只执行 setValue 并让 Firebase 为您处理。

关于ios - 如果没有连接,则不会调用 Firebase withCompletionBlock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20453501/

相关文章:

javascript - 如何在用户登录时显示注销

ios - Xcode 7 - 垂直间距约束

IOS - UIWebView 中不需要的超链接

ios - 从 VC1 向 VC2 传递值

swift - 使用 Swift 3 在 Firebase 数据库中检索 Int

javascript - 没有 'on' 订阅的缓存

ios - ALAsset 唯一标识符

iphone - 如何在iphone 的iCarousel 上设置CustomFrame?

ios - Keep Alive 在 iOS 上无法正常工作

java - 关闭时使用 Firebase 保持应用登录状态