アプリの起動時に必要なアプリケーションのバージョン番号を取得したい。しかし、私は正しい鍵を得ることができません。ObserveSingleEventが古いデータを返す
私はこのコードを取得しました。このメソッドを使用して必要なアプリケーションのバージョン番号を確認するため、私は単一のイベントを使用します。このメソッドは、アプリケーションがチェックを開始するときにのみ起動されます。
func getVersion(completionHandler: @escaping (Result<Any?>) ->()) {
let ref: DatabaseReference! = Database.database().reference().child("version").child("IOS")
ref?.observeSingleEvent(of: .value , with: { snapshot in
if snapshot.exists() {
let recent = snapshot.value as! NSDictionary
print(recent)
}
})
}
しかし、古い結果が返されますか?私はisPersistenceEnabled
をAppdelegate
で有効にしました。
これは、データベースの構造です:
私はDatabase.database().reference().child("version").child("IOS").
snapshot.existsを使用する場合、私は何の結果を得るていない私はそれを使用する場合はfalseです。
私が以前に持っていたものは次のとおりでした: - バージョン | IOS - 1.0
Database.database().reference().child("version"), namely {iOS => 1.0}
を使用すると結果が得られます。それは私の古い構造だったので、私はそれを取得しません。
'isPersistenceEnabled'がtrueに設定されている場合、オブザーバーは最初にローカルストレージからデータをフェッチします。 'observeSingleEventOfType'は一度しか観察されないため、ローカルストレージからデータを取得します。 –
@MuhammadHassan強制的にデータをリロードする方法はありますか? – da1lbi3