上传图片错误:用户未通过身份验证,请使用 Firebase 身份验证进行身份验证,然后重试

时间:2021-07-27 04:54:16

标签: swift swiftui

我的应用程序是通过匿名身份验证登录的,我在 SwiftUI 上有一个用于从 iPhone 上传用户照片的类,但是,将照片上传到 Firebase 存储时,我收到错误消息:

<块引用>

用户未通过身份验证,请使用 Firebase 进行身份验证 验证并重试。

这是我的代码:

AuthViewModel.kt

class AuthViewModel: NSObject, ObservableObject {

@Published var userID = ""


func login() {
    
    Auth.auth().signInAnonymously { (res, err) in
        
        if err != nil {
            print(err!.localizedDescription)
            return
        }
        
        print("Success = \(res!.user.uid)")
        self.userID = res!.user.uid
        
    }
}

}

UserViewModel

func setCurrentUserImage(profileImage: UIImage) {
    
    guard let imageData = profileImage.jpegData(compressionQuality: 0.3) else { return }
    
    let filename = NSUUID().uuidString
    
    let storageRef = Storage.storage().reference().child("UserPhotos").child("\(self.currentUser)/\(filename)")
    
    storageRef.putData(imageData, metadata: nil) { _, error in
        if let error = error {
            print("Upload Image error: \(error.localizedDescription)")
            return
        }
        
        storageRef.downloadURL { url, _ in
            
            guard let profileImageURL = url?.absoluteString else { return }
            
            let docRef = self.db.collection("users").document(self.currentUser)
            
            docRef.getDocument(source: .cache) { (snap, err) in
                
                guard let curUser = snap else { return }
                
                curUser.reference.updateData(["userImage" : profileImageURL])
                
            }
        }
        
    }
}

Firebase 存储安全规则:

match /{allPaths=**} {
  allow read, write;
}

0 个答案:

没有答案