提问人:Johnny Regan 提问时间:10/21/2023 最后编辑:Frank van PuffelenJohnny Regan 更新时间:10/22/2023 访问量:48
如何防止Firebase查询崩溃,在应用启动时EXC_BAD_ACCESS(KERN_INVALID_ADDRESS)?
How to prevent Firebase Query Crash, EXC_BAD_ACCESS (KERN_INVALID_ADDRESS) on App Startup?
问:
在应用程序打开的前 2 秒内,我在一种特定方法的一行特定代码上遇到了这种崩溃。
这种崩溃在我的用户设备上随机发生,而不是在我的设备上发生,所以我无法重现它。我只拥有 Firebase Crashlytics 提供的功能。
有关代码的一些额外详细信息:
此查询在用户打开应用时看到的第一页上的 ViewDidLoad 中运行
此查询在后台线程中运行
此查询与其他 6 个查询同时运行,每个查询都在自己的后台线程上运行
此崩溃仅发生在此特定行的此特定查询中
此崩溃通常发生在 FIRDocumentSnapshot 的第一次迭代中,但偶尔会在多次迭代后发生
我已经尝试过的一些解决方案:
我尝试在运行任何其他查询之前允许此查询完成
在所有其他查询完成后,我最后一次尝试运行此查询
我尝试将 NULL 检查添加到 snapshot、doc 和 doc.data
我试过检查 NSError
我试过在主线程上运行它
访问 doc.data 时此行发生崩溃
NSLog(@"Test %@", doc.data);
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
FIRFirestore *defaultFirestore = [FIRFirestore firestore];
[[[[defaultFirestore collectionWithPath:@"Homes"] documentWithPath:homeID] collectionWithPath:collection] getDocumentsWithCompletion:^(FIRQuerySnapshot * _Nullable snapshot, NSError * _Nullable error) {
if (error == nil) {
for (FIRDocumentSnapshot *doc in snapshot.documents) {
if (doc != nil) {
NSLog(@"Test %@", doc.data);
}
}
}
}];
});
答: 暂无答案
评论