React Native Expo 应用程序仅在 Testflight 中崩溃(!),但在 Expo 开发服务器上不会崩溃,并且仅在使用某些参数进行导航时崩溃

Jan*_*sch 5 ios testflight react-native react-navigation expo

我正在尝试使用 Expo 创建我的第一个 React Native 应用程序,目前遇到的问题仅发生在 Apple Testflight 应用程序上,而不是在正常开发模式下(在 Expo 服务器上执行应用程序时)。

在我的应用程序中,有不同的 ToDos 具有不同的 ID。ToDo 存储在 Firebase 数据库中,ID 由数据库随机分配(创建新 ToDo 时)。

执行npm包react-navigation( https://reactnavigation.org/docs/getting-started/ )的navigation.navigate()函数时发生错误(或崩溃)。此方法采用屏幕名称(作为字符串),并且可以添加其他参数。为了创建一个新的(空)ToDo,我使用 todoId 0 导航到我的ToDoDetailScreen。无论是在 Expo 开发模式还是在 Testflight 应用程序上,这都工作得很好。

<ButtonC onPress={() => { navigation.navigate(PR_TODO_DETAIL_SCREEN, { todoId: 0 }) }} />
Run Code Online (Sandbox Code Playgroud)

然而,当我想导航到一个已经存在的 ToDo(具有不同的 ID,例如“2issHSpPo1IQtAElg6w5”)时,它在我的 Expo 开发服务器上运行得很好,但在 Testflight 应用程序中它崩溃了。执行调用代码是这样的:

<Button onPress={() => { navigation.navigate(PR_TODO_DETAIL_SCREEN, { todoId: item.id }) }}/> 
Run Code Online (Sandbox Code Playgroud)

(我使用 ButtonC 和第二个时间按钮是有意的,不会导致任何问题,因为这两个调用都在开发模式下工作)。常量 PR_TODO_DETAIL_SCREEN 只是我的屏幕的相应名称(字符串):

export const PR_TODO_DETAIL_SCREEN = 'ToDoDetailScreen';
Run Code Online (Sandbox Code Playgroud)

我可以查看 Testflight 应用程序提供的一些崩溃报告,但我正在使用 Expo 在 Windows 系统上进行开发,并且不使用 XCode。所以我对我获得的崩溃日志类型不是很熟悉,也无法在网上找到任何具体内容。当我使用文本编辑器打开 crashlog.crash 文件时,它看起来像这样:

Incident Identifier: 891953D5-ED10-4118-A060-85DA007F02CD
Hardware Model:      iPhone11,2
Process:             timetool [38661]
Path:                /private/var/containers/Bundle/Application/CADBEA3E-8594-4022-8065-AA055C1D641F/timetool.app/timetool
Identifier:          com.janoschvk.timetool
Version:             1.0.0 (3)
AppStoreTools:       13E500
AppVariant:          1:iPhone11,2:15
Beta:                YES
Code Type:           ARM-64 (Native)
Role:                Foreground
Parent Process:      launchd [1]
Coalition:           com.janoschvk.timetool [1327]

Date/Time:           2022-05-04 12:18:42.7630 +0200
Launch Time:         2022-05-04 11:51:03.1271 +0200
OS Version:          iPhone OS 15.4.1 (19E258)
Release Type:        User
Baseband Version:    4.03.02
Report Version:      104

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Triggered by Thread:  1

Last Exception Backtrace:
0   CoreFoundation                  0x1b853dd78 __exceptionPreprocess + 220 (NSException.m:200)
1   libobjc.A.dylib                 0x1d11a2734 objc_exception_throw + 60 (objc-exception.mm:565)
2   timetool                        0x104ab83e0 RCTFatal + 668 (RCTAssert.m:146)
3   timetool                        0x104b35a00 -[RCTExceptionsManager reportFatal:stack:exceptionId:suppressRedBox:] + 600 (RCTExceptionsManager.mm:89)
4   timetool                        0x104b363bc -[RCTExceptionsManager reportException:] + 1532 (RCTExceptionsManager.mm:164)
5   CoreFoundation                  0x1b84c6614 __invoking___ + 148
6   CoreFoundation                  0x1b84e4100 -[NSInvocation invoke] + 468 (NSForwarding.m:3378)
7   CoreFoundation                  0x1b851b13c -[NSInvocation invokeWithTarget:] + 80 (NSForwarding.m:3475)
8   timetool                        0x104ae91e4 -[RCTModuleMethod invokeWithBridge:module:arguments:] + 460 (RCTModuleMethod.mm:584)
9   timetool                        0x104aeb67c facebook::react::invokeInner(RCTBridge*, RCTModuleData*, unsigned int, folly::dynamic const&, int, (anonymous namespace)::SchedulingContext) + 540 (RCTNativeModule.mm:181)
10  timetool                        0x104aeb2b4 operator() + 56 (RCTNativeModule.mm:103)
11  timetool                        0x104aeb2b4 invocation function for block in facebook::react::RCTNativeModule::invoke(unsigned int, folly::dynamic&&, int) + 100 (RCTNativeModule.mm:95)
12  libdispatch.dylib               0x1b81a2e68 _dispatch_call_block_and_release + 32 (init.c:1517)
13  libdispatch.dylib               0x1b81a4a2c _dispatch_client_callout + 20 (object.m:560)
14  libdispatch.dylib               0x1b81ac124 _dispatch_lane_serial_drain + 668 (inline_internal.h:2622)
15  libdispatch.dylib               0x1b81acc80 _dispatch_lane_invoke + 392 (queue.c:3944)
16  libdispatch.dylib               0x1b81b7500 _dispatch_workloop_worker_thread + 648 (queue.c:6732)
17  libsystem_pthread.dylib         0x2294c20bc _pthread_wqthread + 288 (pthread.c:2599)
18  libsystem_pthread.dylib         0x2294c1e5c start_wqthread + 8

Thread 0 name:
Thread 0:
0   libobjc.A.dylib                 0x00000001d119b020 bool objc::DenseMapBase<objc::DenseMap<void const*, objc::ObjcAssociation, objc::DenseMapValueInfo<objc::ObjcAssociation>, objc::DenseMapInfo<void const*>, objc::detail::DenseMapPair<void const*, o... + 144 (llvm-DenseMap.h:671)
1   libobjc.A.dylib                 0x00000001d1193770 objc_setAssociatedObject + 868 (llvm-DenseMap.h:701)
2   UIKitCore                       0x00000001baaf3b94 -[UIView _addGeometryChangeObserver:] + 124 (UIView.m:8759)
3   UIKitCore                       0x00000001baaf3c08 -[UIView _addGeometryChangeObserver:] + 240 (UIView.m:8803)
4   UIKitCore                       0x00000001bac03ad0 -[_UITAMICAdaptorView didMoveToWindow] + 84 (_UITAMICAdaptorView.m:100)
5   UIKitCore                       0x00000001babcbae4 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 2240 (UIView.m:16061)
6   UIKitCore                       0x00000001baaf1ef4 __45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke + 140 (UIView.m:12349)
7   UIKitCore                       0x00000001bab815b8 -[UIView(Hierarchy) _postMovedFromSuperview:] + 812 (UIView.m:476)
8   UIKitCore                       0x00000001baa9e258 -[UIView(Internal) _addSubview:positioned:relativeTo:] + 2152 (UIView.m:16778)
9   UIKitCore                       0x00000001bae14720 -[_UILayoutArrangement insertItem:atIndex:] + 468 (_UILayoutArrangement.m:489)
10  UIKitCore                       0x00000001bad0a7f4 __50-[_UIOrderedLayoutArrangement insertItem:atIndex:]_block_invoke + 52 (_UIOrderedLayoutArrangement.m:213)
11  UIKitCore                       0x00000001bad668d4 -[_UIOrderedLayoutArrangement _trackChangesAffectingExternalBaselineConstraints:] + 156 (_UIOrderedLayoutArrangement.m:183)
12  UIKitCore                       0x00000001bacd8264 -[_UIOrderedLayoutArrangement insertItem:atIndex:] + 496 (_UIOrderedLayoutArrangement.m:212)
13  UIKitCore                       0x00000001bae53a44 -[UIStackView insertArrangedSubview:atIndex:] + 264 (UIStackView.m:107)
14  UIKitCore                       0x00000001bad069e0 -[_UIButtonBar _layoutBar] + 2576 (UIButtonBar.m:555)
15  UIKitCore                       0x00000001bab456b4 __42-[_UIButtonBarStackView updateConstraints]_block_invoke + 52 (UIButtonBar.m:1284)
16  UIKitCore                       0x00000001baa87054 +[UIView(Animation) performWithoutAnimation:] + 104 (UIView.m:14609)
17  UIKitCore                       0x00000001bab76f60 -[_UIButtonBarStackView updateConstraints] + 120 (UIButtonBar.m:1283)
18  UIKitCore                       0x00000001bac8e210 -[UIView(AdditionalLayoutSupport) _sendUpdateConstraintsIfNecessaryForSecondPass:] + 484 (NSLayoutConstraint_UIKitAdditions.m:0)
19  UIKitCore                       0x00000001baaa3ca8 -[UIView(AdditionalLayoutSupport) _updateConstraintsIfNeededCollectingViews:forSecondPass:] + 1000 (NSLayoutConstraint_UIKitAdditions.m:4415)
20  UIKitCore                       0x00000001baaa3b88 -[UIView(AdditionalLayoutSupport) _updateConstraintsIfNeededCollectingViews:forSecondPass:] + 712 (NSLayoutConstraint_UIKitAdditions.m:4396)
21  CoreAutoLayout                  0x00000001d14a55c4 -[NSISEngine withBehaviors:performModifications:] + 88 (NSISEngine.m:1988)
22  UIKitCore                       0x00000001bab0b798 __100-[UIView(AdditionalLayoutSupport) _updateConstraintsIfNeededWithViewForVariableChangeNotifications:]_block_invoke + 112 (NSLayoutConstraint_UIKitAdditions.m:4461)
23  UIKitCore                       0x00000001bab3db10 -[UIView(AdditionalLayoutSupport) _withUnsatisfiableConstraintsLoggingSuspendedIfEngineDelegateExists:] + 128 (NSLayoutConstraint_UIKitAdditions.m:4161)
24  UIKitCore                       0x00000001bab86cb0 -[UIView(AdditionalLayoutSupport) _updateConstraintsIfNeededWithViewForVariableChangeNotifications:] + 188 (NSLayoutConstraint_UIKitAdditions.m:4460)
25  UIKitCore                       0x00000001bad9b898 -[UIView(AdditionalLayoutSupport) _updateConstraintsAtEngineLevelIfNeededWithViewForVariableChangeNotifications:] + 536 (NSLayoutConstraint_UIKitAdditions.m:4735)
26  UIKitCore                       0x00000001bab0473c -[UIView(Hierarchy) layoutBelowIfNeeded] + 912 (UIView.m:12823)
27  UIKitCore                       0x00000001baddd178 -[_UINavigationBarTransitionContextPush _prepareContentView] + 228 (_UINavigationBarTransitionContext.m:1060)
28  UIKitCore                       0x00000001bad98728 -[_UINavigationBarTransitionContextPush prepare] + 104 (_UINavigationBarTransitionContext.m:1201)
29  UIKitCore                       0x00000001bad7ad30 -[_UINavigationBarVisualProviderModernIOS _performAnimationWithTransitionCompletion:transition:] + 2280 (_UINavigationBarVisualProviderModernIOS.m:1818)
30  UIKitCore                       0x00000001babc7cb0 -[UINavigationBar _pushNavigationItem:transitionAssistant:] + 604 (UINavigationBar.m:1926)
31  UIKitCore                       0x00000001bae1acec -[UINavigationBar _pushNavigationItemUsingCurrentTransition:] + 340 (UINavigationBar.m:1770)
32  UIKitCore                       0x00000001bacb351c -[UINavigationBar pushNavigationItem:animated:] + 200 (UINavigationBar.m:1802)
33  UIKitCore                       0x00000001bac86bf8 -[UINavigationBar _performUpdatesIgnoringLock:] + 68 (UINavigationBar.m:351)
34  UIKitCore                       0x00000001bab8c448 -[UINavigationBar _pushNavigationItem:transition:] + 160 (UINavigationBar.m:1813)
35  UIKitCore                       0x00000001bab867ac __71-[UINavigationController pushViewController:transition:forceImmediate:]_block_invoke + 448 (UINavigationController.m:8306)
36  UIKitCore                       0x00000001bb228548 __71-[UINavigationController pushViewController:transition:forceImmediate:]_block_invoke.2160 + 124 (UINavigationController.m:8360)
37  UIKitCore                       0x00000001bac28ffc __98-[UINavigationController _shouldSkipHostedRefreshControlUpdateSchedulingDeferredUpdateIfNecessary]_block_invoke + 36 (UINavigationController.m:7175)
38  UIKitCore                       0x00000001bade9be0 -[UINavigationController _startDeferredTransitionIfNeeded:] + 1308 (UINavigationController.m:7567)
39  UIKitCore                       0x00000001bacbf140 -[UINavigationController __viewWillLayoutSubviews] + 168 (UINavigationController.m:7835)
40  UIKitCore                       0x00000001babe6b38 -[UILayoutContainerView layoutSubviews] + 228 (UILayoutContainerView.m:88)
41  UIKitCore                       0x00000001baaa0844 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 2592 (UIView.m:18426)
42  QuartzCore                      0x00000001bc2161c0 CA::Layer::layout_if_needed(CA::Transaction*) + 532 (CALayer.mm:10116)
43  QuartzCore                      0x00000001bc2085fc CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 136 (CALayer.mm:2479)
44  QuartzCore                      0x00000001bc21cf70 CA::Context::commit_transaction(CA::Transaction*, double, double*) + 452 (CAContextInternal.mm:2612)
45  QuartzCore                      0x00000001bc225e78 CA::Transaction::commit() + 704 (CATransactionInternal.mm:449)
46  QuartzCore                      0x00000001bc207d7c CA::Transaction::flush_as_runloop_observer(bool) + 88 (CATransactionInternal.mm:956)
47  CoreFoundation                  0x00000001b84e5bb4 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 36 (CFRunLoop.c:1804)
48  CoreFoundation                  0x00000001b84b4b70 __CFRunLoopDoObservers + 592 (CFRunLoop.c:1917)
49  CoreFoundation                  0x00000001b84afc2c __CFRunLoopRun + 1052 (CFRunLoop.c:2979)
50  CoreFoundation                  0x00000001b84c36b8 CFRunLoopRunSpecific + 600 (CFRunLoop.c:3268)
51  GraphicsServices                0x00000001d455d374 GSEventRunModal + 164 (GSEvent.c:2200)
52  UIKitCore                       0x00000001bae28e88 -[UIApplication _run] + 1100 (UIApplication.m:3511)
53  UIKitCore                       0x00000001babaa5ec UIApplicationMain + 364 (UIApplication.m:5064)
54  timetool                        0x00000001049f3c68 main + 88 (main.m:7)
55  dyld                            0x0000000105121ce4 start + 520 (dyldMain.cpp:879)

Thread 1 name:
Thread 1 Crashed:
0   libsystem_kernel.dylib          0x00000001efeacb78 __pthread_kill + 8
1   libsystem_pthread.dylib         0x00000002294c83bc pthread_kill + 268 (pthread.c:1668)
2   libsystem_c.dylib               0x00000001c362051c abort + 168 (abort.c:118)
3   libc++abi.dylib                 0x00000001d12adb7c abort_message + 132 (abort_message.cpp:78)
4   libc++abi.dylib                 0x00000001d129d9c4 demangling_terminate_handler() + 336 (cxa_default_handlers.cpp:71)
5   libobjc.A.dylib                 0x00000001d11a8c88 _objc_terminate() + 144 (objc-exception.mm:701)
6   libc++abi.dylib                 0x00000001d12acf18 std::__terminate(void (*)()) + 20 (cxa_handlers.cpp:59)
7   libc++abi.dylib                 0x00000001d12aceb4 std::terminate() + 64 (cxa_handlers.cpp:88)
8   libdispatch.dylib               0x00000001b81a4a40 _dispatch_client_callout + 40 (object.m:563)
9   libdispatch.dylib               0x00000001b81ac124 _dispatch_lane_serial_drain + 668 (inline_internal.h:2622)
10  libdispatch.dylib               0x00000001b81acc80 _dispatch_lane_invoke + 392 (queue.c:3944)
11  libdispatch.dylib               0x00000001b81b7500 _dispatch_workloop_worker_thread + 648 (queue.c:6732)
12  libsystem_pthread.dylib         0x00000002294c20bc _pthread_wqthread + 288 (pthread.c:2599)
13  libsystem_pthread.dylib         0x00000002294c1e5c start_wqthread + 8

Thread 2 name:
Thread 2:
0   libsystem_kernel.dylib          0x00000001efea64e0 mach_msg_trap + 8
1   libsystem_kernel.dylib          0x00000001efea6b24 mach_msg + 76 (mach_msg.c:119)
2   CoreFoundation                  0x00000001b84ab820 __CFRunLoopServiceMachPort + 372 (CFRunLoop.c:2646)
3   CoreFoundation                  0x00000001b84afcac __CFRunLoopRun + 1180 (CFRunLoop.c:3000)
4   CoreFoundation                  0x00000001b84c36b8 CFRunLoopRunSpecific + 600 (CFRunLoop.c:3268)
5   Foundation                      0x00000001b9caa414 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 236 (NSRunLoop.m:373)
6   Foundation                      0x00000001b9cebcac -[NSRunLoop(NSRunLoop) runUntilDate:] + 92 (NSRunLoop.m:420)
7   UIKitCore                       0x00000001bada2fb0 -[UIEventFetcher threadMain] + 524 (UIEventFetcher.m:1167)
8   Foundation                      0x00000001b9cfa55c __NSThread__start__ + 808 (NSThread.m:972)
9   libsystem_pthread.dylib         0x00000002294c29ac _pthread_start + 148 (pthread.c:891)
10  libsystem_pthread.dylib         0x00000002294c1e68 thread_start + 8

Thread 3 name:
Thread 3:
0   libsystem_kernel.dylib          0x00000001efea64e0 mach_msg_trap + 8
1   libsystem_kernel.dylib          0x00000001efea6b24 mach_msg + 76 (mach_msg.c:119)
2   CoreFoundation                  0x00000001b84ab820 __CFRunLoopServiceMachPort + 372 (CFRunLoop.c:2646)
3   CoreFoundation                  0x00000001b84afcac __CFRunLoopRun + 1180 (CFRunLoop.c:3000)
4   CoreFoundation                  0x00000001b84c36b8 CFRunLoopRunSpecific + 600 (CFRunLoop.c:3268)
5   timetool                        0x0000000104acac64 +[RCTCxxBridge runRunLoop] + 264 (RCTCxxBridge.mm:308)
6   Foundation                      0x00000001b9cfa55c __NSThread__start__ + 808 (NSThread.m:972)
7   libsystem_pthread.dylib         0x00000002294c29ac _pthread_start + 148 (pthread.c:891)
8   libsystem_pthread.dylib         0x00000002294c1e68 thread_start + 8

Thread 4 name:
Thread 4:
0   libsystem_kernel.dylib          0x00000001efea64e0 mach_msg_trap + 8
1   libsystem_kernel.dylib          0x00000001efea6b24 mach_msg + 76 (mach_msg.c:119)
2   CoreFoundation                  0x00000001b84ab820 __CFRunLoopServiceMachPort + 372 (CFRunLoop.c:2646)
3   CoreFoundation                  0x00000001b84afcac __CFRunLoopRun + 1180 (CFRunLoop.c:3000)
4   CoreFoundation                  0x00000001b84c36b8 CFRunLoopRunSpecific + 600 (CFRunLoop.c:3268)
5   CFNetwork                       0x00000001b8f394d8 +[__CFN_CoreSchedulingSetRunnable _run:] + 472 (CoreSchedulingSet.mm:1372)
6   Foundation                      0x00000001b9cfa55c __NSThread__start__ + 808 (NSThread.m:972)
7   libsystem_pthread.dylib         0x00000002294c29ac _pthread_start + 148 (pthread.c:891)
8   libsystem_pthread.dylib         0x00000002294c1e68 thread_start + 8

Thread 5:
0   libsystem_pthread.dylib         0x00000002294c1e54 start_wqthread + 0

Thread 6:
0   libsystem_pthread.dylib         0x00000002294c1e54 start_wqthread + 0

Thread 7:
0   libsystem_pthread.dylib         0x00000002294c1e54 start_wqthread + 0

Thread 8 name:
Thread 8:
0   libsystem_kernel.dylib          0x00000001efea6f64 __psynch_cvwait + 8
1   libsystem_pthread.dylib         0x00000002294c9298 _pthread_cond_wait + 1236 (pthread_cond.c:636)
2   JavaScriptCore                  0x00000001c49264d4 scavenger_thread_main + 1232 (pas_scavenger.c:131)
3   libsystem_pthread.dylib         0x00000002294c29ac _pthread_start + 148 (pthread.c:891)
4   libsystem_pthread.dylib         0x00000002294c1e68 thread_start + 8

Thread 9 name:
Thread 9:
0   libsystem_kernel.dylib          0x00000001efea6f64 __psynch_cvwait + 8
1   libsystem_pthread.dylib         0x00000002294c9298 _pthread_cond_wait + 1236 (pthread_cond.c:636)
2   JavaScriptCore                  0x00000001c48885f4 WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void ()> const&, WTF::TimeWithDynamicClockType const&) + 1844 (ThreadingPOSIX.cpp:622)
3   JavaScriptCore                  0x00000001c472bcd0 bool WTF::Condition::waitUntilUnchecked<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&) + 248 (ParkingLot.h:82)
4   JavaScriptCore                  0x00000001c484f594 WTF::Detail::CallableWrapper<WTF::AutomaticThread::start(WTF::AbstractLocker const&)::$_0, void>::call() + 260 (Condition.h:77)
5   JavaScriptCore                  0x00000001c48a8f68 WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*) + 352 (Function.h:82)
6   JavaScriptCore                  0x00000001c48ab274 WTF::wtfThreadEntryPoint(void*) + 16 (ThreadingPOSIX.cpp:242)
7   libsystem_pthread.dylib         0x00000002294c29ac _pthread_start + 148 (pthread.c:891)
8   libsystem_pthread.dylib         0x00000002294c1e68 thread_start + 8

Thread 10 name:
Thread 10:
0   libsystem_kernel.dylib          0x00000001efea6f64 __psynch_cvwait + 8
1   libsystem_pthread.dylib         0x00000002294c9298 _pthread_cond_wait + 1236 (pthread_cond.c:636)
2   JavaScriptCore                  0x00000001c48885f4 WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void ()> const&, WTF::TimeWithDynamicClockType const&) + 1844 (ThreadingPOSIX.cpp:622)
3   JavaScriptCore                  0x00000001c472bcd0 bool WTF::Condition::waitUntilUnchecked<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&) + 248 (ParkingLot.h:82)
4   JavaScriptCore                  0x00000001c484f594 WTF::Detail::CallableWrapper<WTF::AutomaticThread::start(WTF::AbstractLocker const&)::$_0, void>::call() + 260 (Condition.h:77)
5   JavaScriptCore                  0x00000001c48a8f68 WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*) + 352 (Function.h:82)
6   JavaScriptCore                  0x00000001c48ab274 WTF::wtfThreadEntryPoint(void*) + 16 (ThreadingPOSIX.cpp:242)
7   libsystem_pthread.dylib         0x00000002294c29ac _pthread_start + 148 (pthrea

Jan*_*sch 0

我现在已经明白了。有点尴尬,但问题只是基于某种访问权限。在客户端中,在我的应用程序中,我忘记确保只有与登录用户相对应的 userId 的项目才加载。在我的 firebase 数据库中,我创建了一条安全规则,以确保只有具有特定用户 ID 的项目才能加载。此外,在打开一项时,客户端还会对该 userId 进行额外检查。服务器端安全规则或双重检查客户端安全规则导致应用程序崩溃。因此,如果您遇到类似问题,请务必检查您的数据访问规则是否不一致。