swift - Firebase Firestore 调用上的 Swift EXC_BAD_INSTRUCTION
问题描述
编辑:我发现它与“isLoading”以及它如何影响 UI 有关。时机刚刚使它看起来像 Firebase。
我正在将数据Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
上传到 Firestore,但在数据上传到 Firestore 之后但在回调发生之前的某个时间点收到错误消息。
发布功能在按钮点击时被调用
func post(for user: User, onSuccess: @escaping() -> Void) {
isLoading = true
let post = Post(text: message, upvotes: [user.uid:true], upvoteCount: 1, downvoteCount: 0, postDate: Date().timeIntervalSince1970, ownerId: user.uid)
API.Post.post(post, onSuccess: {
self.isLoading = false
onSuccess()
}) { (errorString) in
self.isLoading = false
self.errorMessage = errorString
self.showAlert = true
}
}
它调用我的 PostAPI 函数
func post(_ post: Post, onSuccess: @escaping() -> Void, onError: @escaping(_ errorMessage: String) -> Void) {
let collection = FRef.FFirestore.FPosts.MY_POSTS_DOCUMENT_USERID(userId: post.ownerId).collection(FirebaseConstants.Firestore.USER_POSTS_COLLECTION)
let postId = collection.document().documentID
let firestorePostRef = collection.document(postId)
guard let dict = try? post.toDictionary() else { return }
firestorePostRef.setData(dict) { (error) in
if error != nil {
onError(error!.localizedDescription)
return
}
onSuccess()
}
}
这会成功上传数据,但永远不会到达回调。如果我在该行上放置一个断点,if error != nil
即使数据已上传,它也永远不会被命中
解决方案
推荐阅读
- reactjs - React Hook useState 为 props 值返回 undefined 但 props 值出现在文本框值上
- python - Python为多个输入引发自定义值错误
- asp.net - MSBuild Docker 映像
- pyspark - 是否可以从字符串构造 PySpark 语句?
- sql - SQL Oracle - 如何根据它们之间的共享条件排除多行
- api - xcart:为 google studio 仪表板导出报告数据
- android - 使用 APP_STL=c++_static 的 Android 原生崩溃很奇怪
- json - 在 Visual Basic 中验证 JSON 文件
- javascript - CSS - 顶部响应式选项卡导航器过渡(高度:未设置)
- python - 为什么 multiprocessing.apply_async 将字符串解包为参数?