3

我有一个将照片上传到 Firebase 存储的 iOS 应用,以及一个连接到同一个 Firebase 的网络应用。有没有办法从网络上观察存储的变化?上传照片时,只有 iOS 设备本身可以访问 UploadTask,而且我没有在 Storage的文档on中看到事件观察器,就像数据库一样。

4

1 回答 1

3

Firebase 存储不提供与实时数据库相同的“同步”功能(想象一下尝试同步 1GB 对象会是什么样子......)。您需要使用数据库在文件上传时同步元数据(例如下载 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 回答