Cloud Storage for Firebaseのファイルのメタデータを取得する方法
Firebaseのストレージ上のファイルの作成日付や更新日付を知る方法
ヒーラー
サーバー上のファイルの日付のチェックをしてからダウンロードを試みたい
やりたいこと
デバイス上のファイルの作成日付と、FirebaseのCloud Storageに格納してあるファイルの作成日付を比較して、サーバー上のファイルの日付のほうが新しかったらダウンロードしたいという処理はよくあると思います。
日付を別で管理したり、一度ダウンロードしてから作成日付をチェックするのでは効率が悪いため、できれば、サーバー上のファイルを直接確認してからダウンロードをしたいところです。
対処方法
Cloud Storageのリファレンスから作成日付や更新日付を直接確認する方法がありました。
作成日付はtimeCreated、更新日付はupdatedで取得できます。
また、日付に限らず、様々なメタデータを取得することができます。
取得できるメタデータは以下のとおりです。(更新することができるものもあります)
メタデータを取得して、日付チェックするまでのソースコード例は以下のとおりです。
let storage = Storage.storage()
let reference = storage.reference(withPath: "article.json")
reference.getMetadata { metadata, error in
if let error = error {
//エラー処理
} else {
guard let serverUpdated = metadata?.updated else {
//エラー処理
return
}
//日付比較などの処理
if serverUpdated > localUpdated {
//サーバーのファイル作成日付が新しい場合の処理
...
}
}
}
参考
https://firebase.google.com/docs/storage/ios/file-metadata?hl=ja