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