swiftui上传视频到云存储出错
Error uploading video to cloud storage swiftui
我有一个视频创建过程,其中用户使用 UIImagePickerController 选择视频。选择视频后,视频的 url 被传递到视频详情页面。用户完成详细信息并点击上传后,我 运行 此代码:
if canProceed(){
let fileName = "\(UUID().uuidString).mov"
storage.reference(withPath: "videos/\(Auth.auth().currentUser?.email ?? "")/\(fileName)").putFile(from: vidURL, metadata: nil) { metadata, err in
if err != nil{
print(err)
return
}
metadata?.storageReference?.downloadURL(completion: { url, err in
if err != nil{
print(err)
return
}
db.collection("reelPool").document(fileName).setData(["url": url])
})
}
}
没有任何内容上传到云存储,return 是:
Error Domain=FIRStorageErrorDomain Code=-13000 "An unknown error occurred, please check the server response."
您是否记得编辑您的 Firestore 规则以允许 read/write 访问?您的数据库可能不允许写入或只允许经过身份验证的用户写入。通常,代码 -13000 与数据库的权限问题有关。
嗨,我想这是你的答案试试吧,
// Url 是视频 Url 当从图像选择器中选择一个视频时你会得到它
func upload(file: URL, completion: @escaping ((_ url : URL?) -> ())) {
let name = "\(yourFile Name)).mp4"
do {
let data = try Data(contentsOf: file)
let storageRef =
Storage.storage().reference().child("Videos").child(name)
if let uploadData = data as Data? {
let metaData = StorageMetadata()
metaData.contentType = "video/mp4"
storageRef.putData(uploadData, metadata: metaData
, completion: { (metadata, error) in
if let error = error {
completion(nil)
}
else{
storageRef.downloadURL { (url, error) in
guard let downloadURL = url else {
completion(nil)
return
}
completion(downloadURL)
}
print("success")
}
})
}
}catch let error {
print(error.localizedDescription)
}
然后您将获得 Url 视频,现在 运行 firestore 代码并在字典中传递 Url。
我有一个视频创建过程,其中用户使用 UIImagePickerController 选择视频。选择视频后,视频的 url 被传递到视频详情页面。用户完成详细信息并点击上传后,我 运行 此代码:
if canProceed(){
let fileName = "\(UUID().uuidString).mov"
storage.reference(withPath: "videos/\(Auth.auth().currentUser?.email ?? "")/\(fileName)").putFile(from: vidURL, metadata: nil) { metadata, err in
if err != nil{
print(err)
return
}
metadata?.storageReference?.downloadURL(completion: { url, err in
if err != nil{
print(err)
return
}
db.collection("reelPool").document(fileName).setData(["url": url])
})
}
}
没有任何内容上传到云存储,return 是:
Error Domain=FIRStorageErrorDomain Code=-13000 "An unknown error occurred, please check the server response."
您是否记得编辑您的 Firestore 规则以允许 read/write 访问?您的数据库可能不允许写入或只允许经过身份验证的用户写入。通常,代码 -13000 与数据库的权限问题有关。
嗨,我想这是你的答案试试吧, // Url 是视频 Url 当从图像选择器中选择一个视频时你会得到它
func upload(file: URL, completion: @escaping ((_ url : URL?) -> ())) {
let name = "\(yourFile Name)).mp4"
do {
let data = try Data(contentsOf: file)
let storageRef =
Storage.storage().reference().child("Videos").child(name)
if let uploadData = data as Data? {
let metaData = StorageMetadata()
metaData.contentType = "video/mp4"
storageRef.putData(uploadData, metadata: metaData
, completion: { (metadata, error) in
if let error = error {
completion(nil)
}
else{
storageRef.downloadURL { (url, error) in
guard let downloadURL = url else {
completion(nil)
return
}
completion(downloadURL)
}
print("success")
}
})
}
}catch let error {
print(error.localizedDescription)
}
然后您将获得 Url 视频,现在 运行 firestore 代码并在字典中传递 Url。