Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 扑动火基流重启崩溃_Firebase_Flutter - Fatal编程技术网

Firebase 扑动火基流重启崩溃

Firebase 扑动火基流重启崩溃,firebase,flutter,Firebase,Flutter,我对stream和firebase有一个问题,当应用程序第一次启动时一切正常,当我尝试重新启动时,应用程序关闭并出现此错误,我不明白为什么。问题是水流 如果移除流,强制重新加载将正常工作 StreamBuilder( stream: FirebaseAuth.instance.userChanges(), builder: (ctx, userSnapshot) { if (userSnapshot.connectionState == Con

我对stream和firebase有一个问题,当应用程序第一次启动时一切正常,当我尝试重新启动时,应用程序关闭并出现此错误,我不明白为什么。问题是水流 如果移除流,强制重新加载将正常工作

StreamBuilder(
        stream: FirebaseAuth.instance.userChanges(),
        builder: (ctx, userSnapshot) {
          if (userSnapshot.connectionState == ConnectionState.waiting) {
            print("SPLASH");
            return SplashScreen();
          } else if (userSnapshot.hasData) {
            return WelcomeScreen();
          } else {
            print("WELCOME");
            return WelcomeScreen();
          }
        });



Restarted application in 658ms.
-[__NSCFString setStreamHandler:]: unrecognized selector sent to instance 0x283512620
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString setStreamHandler:]: unrecognized selector sent to instance 0x283512620'
*** First throw call stack:
(0x19c5e586c 0x1b15fec50 0x19c4ec95c 0x19c5e8438 0x19c5ea740 0x1045f56d4 0x1045f7af0 0x104606c88 0x1046049ac 0x104603928 0x1053f0694 0x104b90038 0x104e8f41c 0x104e2e81c 0x104e30ed4 0x19c561fa0 0x19c561ba0 0x19c560ffc 0x19c55aee4 0x19c55a21c 0x1b4124784 0x19ef9aee8 0x19efa075c 0x1045f44b0 0x19c21a6b0)
libc++abi.dylib: terminating with uncaught exception of type NSException
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
    frame #0: 0x00000001ca535414 libsystem_kernel.dylib`__pthread_kill + 8
libsystem_kernel.dylib`__pthread_kill:
->  0x1ca535414 <+8>:  b.lo   0x1ca535434               ; <+40>
    0x1ca535418 <+12>: pacibsp
    0x1ca53541c <+16>: stp    x29, x30, [sp, #-0x10]!
    0x1ca535420 <+20>: mov    x29, sp
Target 0: (Runner) stopped.
StreamBuilder(
流:FirebaseAuth.instance.userChanges(),
生成器:(ctx,用户快照){
if(userSnapshot.connectionState==connectionState.waiting){
打印(“飞溅”);
返回屏幕();
}else if(userSnapshot.hasData){
返回WelcomeScreen();
}否则{
打印(“欢迎”);
返回WelcomeScreen();
}
});
在658ms内重新启动应用程序。
-[\uu NSCFString setStreamHandler:]:发送到实例0x28351260的选择器无法识别
***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[\uu NSCFString setStreamHandler:]:未识别的选择器已发送到实例0x28351260”
***第一次抛出调用堆栈:
(0x19c5e586c 0x1b15fec50 0x19c4ec95c 0x19c5e8438 0x19c5ea740 0x1045f56d4 0x1045f7af0 0x104606c88 0x1046049ac 0x104603928 0x1053f0694 0x104b90038 0x104e8f41c 0x104e2e81c 0x104e30ed4 0x19c561fa0 0x19c561ba0 0x19c560ffc 0x19c55aee4 0x19c55a21c 0x1b4124784 0x19EF9EE8 0xEFA0755C 0x1045F4B00C21A0)
libc++abi.dylib:以NSException类型的未捕获异常终止
*线程#1,队列='com.apple.main thread',停止原因=信号SIGABRT
帧0:0x00000001ca535414 libsystem\u kernel.dylib`\u pthread\u kill+8
libsystem\u kernel.dylib`\u pthread\u kill:
->0x1ca535414:b.lo 0x1ca535434;
0x1ca535418:pacibsp
0x1ca53541c:stp x29,x30,[sp,#-0x10]!
0x1ca535420:mov x29,sp
目标0:(跑步者)已停止。
如本文所述,您可以

firebase_auth
至^1.1.2 或者按照本期提供的步骤操作

但只要回到1.1.1,我就解决了这个问题

确保您的依赖项如下所示:

firebase_auth: 1.1.1

使用修补的
-[FLTFirebaseAuthPlugin cleanupWithCompletion:]
方法,我的崩溃消失了:


- (void)cleanupWithCompletion:(void (^)(void))completion {
  // Cleanup credentials.
  [_credentials removeAllObjects];

  for (FlutterEventChannel *channel in self->_eventChannels.allValues) {
    [channel setStreamHandler:nil];
  }
  [self->_eventChannels removeAllObjects];
  for (NSObject<FlutterStreamHandler> *handler in self->_streamHandlers.allValues) {
    [handler onCancelWithArguments:nil];
  }
  [self->_streamHandlers removeAllObjects];

  if (completion != nil) completion();
}

-(作废)清理完成:(作废(^)(作废))完成{
//清理凭据。
[_凭据删除所有对象];
用于(自->\u eventChannels.allValues中的flatterEventChannel*通道){
[通道设置流处理器:无];
}
[self->_eventchannelsremoveallobjects];
for(self->\u streamHandlers.allValues中的NSObject*处理程序){
[handler onCancelWithArguments:nil];
}
[self->_streamhandlersremoveallobjects];
如果(完成!=nil)完成();
}
原始问题是由于在循环中对字典键进行迭代,但将它们用作值而导致的