У меня есть приложение, в котором firebase сохраняет группу изображений, которые пользователь взял в хранилище.Проблема, однако, в том, что когда он делает это, он сохраняет последнее изображение в этом массиве 2 раза.
Конечный результат в хранилище выглядит примерно так (Img2 должен произойти только один раз):
UserID / ImgGroup1 / (Img1, Img2, Img2)
Редактировать : Проблема в том, что при изменении storageRef в функции uploadImage , которая не включена в вопрос, с Auth.auth().currentUser?.email
на Auth.auth().currentUser?.uid
Это делает это.Но когда у меня там есть электронная почта, это невозможно.Итак, как мне это исправить?
Сильфон - это функция, в которой это происходит:
//send Posts Function
func sendPosts() {
let ref = Database.database().reference()
let uid = Auth.auth().currentUser?.uid
let imagesNumber = PhotoArray.sharedInstance.photosArray.count
let childRef = ref.child("Posts").child(uid!).child("post\(takePicViewController().finalPost + PhotoArray.sharedInstance.numberPost)")
if(imagesNumber>0)
{
for image in PhotoArray.sharedInstance.photosArray {
let storageRef = Storage.storage().reference().child((Auth.auth().currentUser?.uid)!).child("post\(takePicViewController().finalPost + PhotoArray.sharedInstance.numberPost)").child(imageName)
let postRef = childRef.child("ImageUrl")
let autoID = postRef.childByAutoId().key
let Image = image
if let uploadData = UIImagePNGRepresentation(Image) {
storageRef.putData(uploadData, metadata: nil) { (metadata, err) in
if let err = err {
print(err)
}
storageRef.downloadURL(completion: { (url, error) in
if error != nil {
print(error as Any)
} else {
guard let imgUrl = url?.absoluteString else { return }
let value = [autoID: imgUrl] as [String : Any]
postRef.updateChildValues(value)
}
})
}
}
}
}
// else if(imagesNumber>0)
// {
//
// for image in PhotoArray.sharedInstance.photosArray {
//
// let storageRef = Storage.storage().reference().child((Auth.auth().currentUser?.uid)!).child("post\(takePicViewController().finalPost + PhotoArray.sharedInstance.numberPost)").child(imageName)
// let postRef = childRef.child("ImageUrl")
// let autoID = postRef.childByAutoId().key
// let Image = image
//
// if let uploadData = UIImagePNGRepresentation(Image) {
//
// storageRef.putData(uploadData, metadata: nil, completion: { (metadata, error) in
// if error != nil {
// print("error")
// } else {
//
// storageRef.downloadURL { (url, error) in
//
// if let error = error {
// // Handle any errors
// let err = error as NSError
// print(err.localizedDescription)
// } else {
// guard let imageUrl = url?.absoluteString else { return }
// postRef.child(autoID).setValue(imageUrl)
// }
//
//
// }
//
// }
//
// })
// }
// }
// }
}//func
Где я ошибаюсь?
Спасибо за любую помощь!