3

写真を Firebase Storage にアップロードする iOS アプリと、同じ Firebase に接続された Web アプリがあります。Web からストレージの変化を観察する方法はありますか? 写真がアップロードされているときに UploadTask にアクセスできるのは iOS デバイス自体だけであり、ストレージのドキュメントにはデータベースのようなonイベント オブザーバーはありませんでした。

4

1 に答える 1

3

Firebase Storage は、Realtime Database と同じ「同期」機能を提供しません (1 GB のオブジェクトを同期しようとするとどうなるか想像してみてください...)。次のように、データベースを使用して、ファイルのアップロード時にメタデータ (ダウンロード URL など) を同期する必要があります。

// Upload file to Firebase Storage
storageRef.putData(imageData).observeStatus(.Success) { (snapshot) in
  // When the image has successfully uploaded, get it's download URL
  let url = snapshot.metadata?.downloadURL()?.absoluteString

  // Write data to the realtime database
  dbRef.child("photos").childByAutoId().setValue(["name": snapshot.metadata?.name, "url": url])
}

...

dbRef.child("photos").observeEventType(.ChildAdded, withBlock: { (snapshot) -> Void in 
  // snapshot contains the name and URL of the uploaded file
});

Code is from Zero to App、I/O 2016 で行った講演で、これについてもう少し詳しく説明しています

于 2016-05-31T19:32:36.007 に答える