Firebase RemoteConfig是否继续提取?

时间:2016-12-30 04:37:52

标签: firebase swift3 firebase-remote-config

我在初始ViewController viewDidLoad中加载了以下代码。它最初工作正常。但它不应该每10秒寻找一次变化吗?

当我在Firebase中对配置值进行更新并发布时,我不会在应用中看到这种情况。我在调试模式下运行,所以限制不是问题。

如果我重新启动应用,我会看到新值。由于时间间隔设置为10秒,我不应该在应用程序运行时看到更新吗?

let rc = FIRRemoteConfig.remoteConfig()

let interval: TimeInterval = 10
    FIRRemoteConfig.remoteConfig().fetch(withExpirationDuration: interval) {
        (status, error) in

        guard error == nil else {
            //handle error here
            return
        }

        FIRRemoteConfig.remoteConfig().activateFetched()
        let test = rc["key1"].stringValue //this runs only once
    }

为什么这不能更新的任何想法?

1 个答案:

答案 0 :(得分:1)

您应该使用scheduledTimer代替。

/// Fetches Remote Config data and sets a duration that specifies how long config data lasts.
    /// Call activateFetched to make fetched data available to your app.
    /// @param expirationDuration  Duration that defines how long fetched config data is available, in
    ///                            seconds. When the config data expires, a new fetch is required.
    /// @param completionHandler   Fetch operation callback.
    open func fetch(withExpirationDuration expirationDuration: TimeInterval, completionHandler: FirebaseRemoteConfig.FIRRemoteConfigFetchCompletion? = nil)

fetch(withExpirationDuration: interval)是用超时来获取数据,即你的间隔。

let interval: TimeInterval = 10
Timer.scheduledTimer(timeInterval: interval,
                         target: self,
                         selector: #selector(updateConfig),
                         userInfo: nil,
                         repeats: true)

func updateConfig() {
    let rc = FIRRemoteConfig.remoteConfig()

    FIRRemoteConfig.remoteConfig().fetch { (status, error) in
        guard error == nil else {
        //handle error here
        return
        }

        FIRRemoteConfig.remoteConfig().activateFetched()
        let test = rc["key1"].stringValue //this runs only once
    }
}