【发布时间】:2016-05-31 17:46:38
【问题描述】:
我有一个将照片上传到 Firebase 存储的 iOS 应用,以及一个连接到同一个 Firebase 的网络应用。有没有办法从网络上观察存储的变化?上传照片时,只有 iOS 设备本身可以访问 UploadTask,而我在 the docs 中没有看到 on 事件观察者用于存储,就像用于数据库一样。
【问题讨论】:
标签: javascript firebase firebase-storage
我有一个将照片上传到 Firebase 存储的 iOS 应用,以及一个连接到同一个 Firebase 的网络应用。有没有办法从网络上观察存储的变化?上传照片时,只有 iOS 设备本身可以访问 UploadTask,而我在 the docs 中没有看到 on 事件观察者用于存储,就像用于数据库一样。
【问题讨论】:
标签: javascript firebase firebase-storage
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 来自 Zero to App,这是我们在 I/O 2016 上进行的一次演讲,其中详细介绍了这一点
【讨论】: