【发布时间】:2021-02-09 02:51:08
【问题描述】:
我一直在试图弄清楚如何检测我从 Firebase 存储中检索到的 url 是照片还是视频,
我关注了这个question,但它似乎不适用于 Firebase Storage URLs。
该问题中实施的解决方案仅在 url 末尾有 extension 时才起作用。
这是我实现的代码:
extension String {
public func isImageType() -> Bool {
// image formats which you want to check
let imageFormats = ["jpg", "png", "gif"]
if URL(string: self) != nil {
let extensi = (self as NSString).pathExtension
return imageFormats.contains(extensi)
}
return false
}
}
需要明确的是,从Firebase 检索到的URLs 具有这种形式。
照片网址示例:
https://firebasestorage.googleapis.com/v0/b/myApp-1e48d.appspot.com/o/Images%2FD118DA58-C128-4E5E-BF24-AA820BEE5590.jpg?alt=media&token=49eie236-f9d1-45f8-bd0b-887382c61ccd
视频网址示例:
https://firebasestorage.googleapis.com/v0/b/myApp-1e48d.appspot.com/o/Videos%2F1E4B7CA0-4D0E-4AC5-9856-2F59D0811C47.mp4?alt=media&token=615teacf-0d20-48aa-bb8f-cew84a14d76d
如您所见,extension 不在末尾(因为需要令牌),因此之前链接的扩展方法不起作用。
我如何才能知道从 Firebase 检索到的 url 是照片还是视频?
【问题讨论】:
-
您可以很容易地删除查询字符串(问号后的所有内容)并从那里解析扩展名。或者,您可以将媒体类型与 URL 一起存储在您使用的任何数据库中。
标签: swift firebase url google-cloud-firestore firebase-storage