当我尝试从 firebase 获取用户名时,应用程序中的抽屉闪烁
Flicker drawer in app when I try to get user name from firebase
我正在构建我的第一个带有自定义抽屉的 Flutter 应用程序。它应该在抽屉的 header 中显示 "Welcome" + name_of_user。但是当我尝试从 firebase 检索用户数据时,它显示 red screen with errors for 1 second and then it behaves like normal。我该如何修复那个红屏?
FirebaseUser mCurrentUser;
String _uname;
FirebaseAuth _auth;
DocumentReference ref;
@override
void initState() {
super.initState();
_auth = FirebaseAuth.instance;
_getCurrentUser();
}
_getCurrentUser () async {
mCurrentUser = await _auth.currentUser();
DocumentSnapshot item = await Firestore.instance.collection("users").document(mCurrentUser.uid).get(); //If //I delete this line everything works fine but I don't have user name.
_uname = item['fname'];
setState(() {
});
}
然后我这样显示名字
child: Text("Welcome " + _uname,
style: TextStyle(
color: Colors.white,
fontSize: 20.0,
fontWeight: FontWeight.w500))),
]));
控制台日志
Launching lib\main.dart on Android SDK built for x86 in debug mode...
Initializing gradle...
Resolving dependencies...
Running Gradle task 'assembleDebug'...
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
Built build\app\outputs\apk\debug\app-debug.apk.
Installing build\app\outputs\apk\app.apk...
Syncing files to device Android SDK built for x86...
D/EGL_emulation(22382): eglMakeCurrent: 0xd7f1a7e0: ver 3 1 (tinfo 0xd7f0f900)
D/eglCodecCommon(22382): setVertexArrayObject: set vao to 0 (0) 1 0
W/DynamiteModule(22382): Local module descriptor class for providerinstaller not found.
W/com.dsc.viu_ap(22382): Unsupported class loader
I/DynamiteModule(22382): Considering local module com.google.android.gms.flags:3 and remote module com.google.android.gms.flags:3
I/DynamiteModule(22382): Selected local version of com.google.android.gms.flags
I/DynamiteModule(22382): Considering local module providerinstaller:0 and remote module providerinstaller:0
W/ProviderInstaller(22382): Failed to load providerinstaller module: No acceptable module found. Local version is 0 and remote version is 0.
D/ApplicationLoaders(22382): Returning zygote-cached class loader: /system/framework/android.hidl.base-V1.0-java.jar
D/ApplicationLoaders(22382): Returning zygote-cached class loader: /system/framework/android.hidl.manager-V1.0-java.jar
D/ApplicationLoaders(22382): Returning zygote-cached class loader: /system/framework/android.hidl.base-V1.0-java.jar
I/com.dsc.viu_ap(22382): The ClassLoaderContext is a special shared library.
W/BiChannelGoogleApi(22382): [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzak@a5e5857
I/com.dsc.viu_ap(22382): The ClassLoaderContext is a special shared library.
I/com.dsc.viu_ap(22382): The ClassLoaderContext is a special shared library.
I/com.dsc.viu_ap(22382): NativeAlloc concurrent copying GC freed 16121(979KB) AllocSpace objects, 13(376KB) LOS objects, 49% free, 1791KB/3583KB, paused 22.289ms total 224.233ms
I/com.dsc.viu_ap(22382): The ClassLoaderContext is a special shared library.
W/com.dsc.viu_ap(22382): Accessing hidden field Ldalvik/system/BaseDexClassLoader;->pathList:Ldalvik/system/DexPathList; (greylist, reflection, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden field Ldalvik/system/DexPathList;->nativeLibraryDirectories:Ljava/util/List; (greylist, reflection, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden field Ldalvik/system/DexPathList;->systemNativeLibraryDirectories:Ljava/util/List; (greylist, reflection, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden field Ldalvik/system/DexPathList;->nativeLibraryPathElements:[Ldalvik/system/DexPathList$NativeLibraryElement; (greylist, reflection, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Ldalvik/system/DexPathList;->makePathElements(Ljava/util/List;)[Ldalvik/system/DexPathList$NativeLibraryElement; (greylist, reflection, allowed)
V/NativeCrypto(22382): Registering com/google/android/gms/org/conscrypt/NativeCrypto's 284 native methods...
W/com.dsc.viu_ap(22382): Accessing hidden method Ljava/security/spec/ECParameterSpec;->getCurveName()Ljava/lang/String; (greylist, reflection, allowed)
D/NetworkSecurityConfig(22382): No Network Security Config specified, using platform default
I/ProviderInstaller(22382): Installed default security provider GmsCore_OpenSSL
W/com.dsc.viu_ap(22382): Accessing hidden method Lsun/misc/Unsafe;->getLong(Ljava/lang/Object;J)J (greylist,core-platform-api, linking, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Lsun/misc/Unsafe;->arrayBaseOffset(Ljava/lang/Class;)I (greylist,core-platform-api, linking, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Lsun/misc/Unsafe;->copyMemory(JJJ)V (greylist, linking, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Lsun/misc/Unsafe;->objectFieldOffset(Ljava/lang/reflect/Field;)J (greylist,core-platform-api, linking, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Lsun/misc/Unsafe;->getByte(J)B (greylist,core-platform-api, linking, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Lsun/misc/Unsafe;->getByte(Ljava/lang/Object;J)B (greylist,core-platform-api, linking, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Lsun/misc/Unsafe;->getLong(J)J (greylist,core-platform-api, linking, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Lsun/misc/Unsafe;->putByte(JB)V (greylist,core-platform-api, linking, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Lsun/misc/Unsafe;->putByte(Ljava/lang/Object;JB)V (greylist,core-platform-api, linking, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Lsun/misc/Unsafe;->getLong(Ljava/lang/Object;J)J (greylist,core-platform-api, reflection, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Lsun/misc/Unsafe;->getLong(Ljava/lang/Object;J)J (greylist,core-platform-api, reflection, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden field Ljava/nio/Buffer;->address:J (greylist, reflection, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden field Ljava/net/Socket;->impl:Ljava/net/SocketImpl; (greylist, reflection, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Ldalvik/system/CloseGuard;->get()Ldalvik/system/CloseGuard; (greylist,core-platform-api, linking, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Ldalvik/system/CloseGuard;->open(Ljava/lang/String;)V (greylist,core-platform-api, linking, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden field Ljava/io/FileDescriptor;->descriptor:I (greylist, JNI, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Ljava/security/spec/ECParameterSpec;->setCurveName(Ljava/lang/String;)V (greylist, reflection, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Lsun/security/x509/AlgorithmId;->get(Ljava/lang/String;)Lsun/security/x509/AlgorithmId; (greylist, reflection, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Lsun/security/x509/AlgorithmId;->getName()Ljava/lang/String; (greylist,core-platform-api, reflection, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Ldalvik/system/BlockGuard;->getThreadPolicy()Ldalvik/system/BlockGuard$Policy; (greylist,core-platform-api, linking, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Ldalvik/system/BlockGuard$Policy;->onNetwork()V (greylist, linking, allowed)
W/BiChannelGoogleApi(22382): [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzak@a5e5857
D/FirebaseAuth(22382): Notifying id token listeners about user ( UhkwQ6lvz3ZwYoBdLH6zod0Li353 ).
W/Firestore(22382): (19.0.0) [FirestoreCallCredentials]: Failed to get token: com.google.firebase.firestore.FirebaseFirestoreException: getToken aborted due to token change.
I/flutter (22382): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter (22382): The following ArgumentError was thrown building AppDrawer(dirty, state: AppDrawerState#ebffb):
I/flutter (22382): Invalid argument(s)
I/flutter (22382):
I/flutter (22382): When the exception was thrown, this was the stack:
I/flutter (22382): #0 _StringBase.+ (dart:core-patch/string_patch.dart:260:57)
I/flutter (22382): #1 AppDrawerState._createHeader (package:viu_app/widget/drawer.dart:110:38)
I/flutter (22382): #2 AppDrawerState.build (package:viu_app/widget/drawer.dart:41:11)
I/flutter (22382): #3 StatefulElement.build (package:flutter/src/widgets/framework.dart:4012:27)
I/flutter (22382): #4 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3924:15)
I/flutter (22382): #5 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #6 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
I/flutter (22382): #7 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4053:11)
I/flutter (22382): #8 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
I/flutter (22382): #9 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (22382): #10 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (22382): #11 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #12 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #13 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
I/flutter (22382): #14 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
I/flutter (22382): #15 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (22382): #16 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (22382): #17 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
I/flutter (22382): #18 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (22382): #19 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (22382): #20 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #21 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #22 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
I/flutter (22382): #23 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4053:11)
I/flutter (22382): #24 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
I/flutter (22382): #25 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (22382): #26 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (22382): #27 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
I/flutter (22382): #28 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (22382): #29 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (22382): #30 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
I/flutter (22382): #31 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (22382): #32 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (22382): #33 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
I/flutter (22382): #34 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (22382): #35 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5198:32)
I/flutter (22382): #36 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (22382): #37 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (22382): #38 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
I/flutter (22382): #39 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (22382): #40 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (22382): #41 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5099:14)
I/flutter (22382): #42 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #43 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #44 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #45 StatefulElement.update (package:flutter/src/widgets/framework.dart:4085:5)
I/flutter (22382): #46 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #47 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #48 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #49 StatelessElement.update (package:flutter/src/widgets/framework.dart:3981:5)
I/flutter (22382): #50 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #51 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3077:38)
I/flutter (22382): #52 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (22382): #53 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #54 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #55 ProxyElement.update (package:flutter/src/widgets/framework.dart:4219:5)
I/flutter (22382): #56 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #57 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #58 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #59 StatefulElement.update (package:flutter/src/widgets/framework.dart:4085:5)
I/flutter (22382): #60 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #61 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #62 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #63 ProxyElement.update (package:flutter/src/widgets/framework.dart:4219:5)
I/flutter (22382): #64 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #65 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #66 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #67 ProxyElement.update (package:flutter/src/widgets/framework.dart:4219:5)
I/flutter (22382): #68 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #69 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:4817:32)
I/flutter (22382): #70 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5208:17)
I/flutter (22382): #71 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #72 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #73 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #74 StatefulElement.update (package:flutter/src/widgets/framework.dart:4085:5)
I/flutter (22382): #75 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #76 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #77 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #78 ProxyElement.update (package:flutter/src/widgets/framework.dart:4219:5)
I/flutter (22382): #79 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #80 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #81 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #82 StatefulElement.update (package:flutter/src/widgets/framework.dart:4085:5)
I/flutter (22382): #83 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #84 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5099:14)
I/flutter (22382): #85 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #86 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #87 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #88 StatelessElement.update (package:flutter/src/widgets/framework.dart:3981:5)
I/flutter (22382): #89 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #90 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5099:14)
I/flutter (22382): #91 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #92 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #93 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #94 StatefulElement.update (package:flutter/src/widgets/framework.dart:4085:5)
I/flutter (22382): #95 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #96 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #97 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #98 StatefulElement.update (package:flutter/src/widgets/framework.dart:4085:5)
I/flutter (22382): #99 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #100 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #101 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #102 ProxyElement.update (package:flutter/src/widgets/framework.dart:4219:5)
I/flutter (22382): #103 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #104 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #105 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #106 ProxyElement.update (package:flutter/src/widgets/framework.dart:4219:5)
I/flutter (22382): #107 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #108 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #109 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #110 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2340:33)
I/flutter (22382): #111 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:700:20)
I/flutter (22382): #112 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:285:5)
I/flutter (22382): #113 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1016:15)
I/flutter (22382): #114 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:958:9)
I/flutter (22382): #115 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:874:5)
I/flutter (22382): #119 _invoke (dart:ui/hooks.dart:236:10)
I/flutter (22382): #120 _drawFrame (dart:ui/hooks.dart:194:3)
I/flutter (22382): (elided 3 frames from package dart:async)
I/flutter (22382): ════════════════════════════════════════════════════════════════════════════════════════════════════
在 initState 中,您正在调用一个 async 函数 _getCurrentUser。因此,当 initState 继续并且页面以 _uname 呈现为 null 时,此函数自然会异步执行。
显示名称时出现空指针异常导致红屏
要么用空字符串初始化 _uname
String _uname = '';
或在显示名称时使用 null 感知运算符
child: Text("Welcome " + _uname ?? '',
style: TextStyle(
color: Colors.white,
fontSize: 20.0,
fontWeight: FontWeight.w500))),
]));
我正在构建我的第一个带有自定义抽屉的 Flutter 应用程序。它应该在抽屉的 header 中显示 "Welcome" + name_of_user。但是当我尝试从 firebase 检索用户数据时,它显示 red screen with errors for 1 second and then it behaves like normal。我该如何修复那个红屏?
FirebaseUser mCurrentUser;
String _uname;
FirebaseAuth _auth;
DocumentReference ref;
@override
void initState() {
super.initState();
_auth = FirebaseAuth.instance;
_getCurrentUser();
}
_getCurrentUser () async {
mCurrentUser = await _auth.currentUser();
DocumentSnapshot item = await Firestore.instance.collection("users").document(mCurrentUser.uid).get(); //If //I delete this line everything works fine but I don't have user name.
_uname = item['fname'];
setState(() {
});
}
然后我这样显示名字
child: Text("Welcome " + _uname,
style: TextStyle(
color: Colors.white,
fontSize: 20.0,
fontWeight: FontWeight.w500))),
]));
控制台日志
Launching lib\main.dart on Android SDK built for x86 in debug mode...
Initializing gradle...
Resolving dependencies...
Running Gradle task 'assembleDebug'...
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
Built build\app\outputs\apk\debug\app-debug.apk.
Installing build\app\outputs\apk\app.apk...
Syncing files to device Android SDK built for x86...
D/EGL_emulation(22382): eglMakeCurrent: 0xd7f1a7e0: ver 3 1 (tinfo 0xd7f0f900)
D/eglCodecCommon(22382): setVertexArrayObject: set vao to 0 (0) 1 0
W/DynamiteModule(22382): Local module descriptor class for providerinstaller not found.
W/com.dsc.viu_ap(22382): Unsupported class loader
I/DynamiteModule(22382): Considering local module com.google.android.gms.flags:3 and remote module com.google.android.gms.flags:3
I/DynamiteModule(22382): Selected local version of com.google.android.gms.flags
I/DynamiteModule(22382): Considering local module providerinstaller:0 and remote module providerinstaller:0
W/ProviderInstaller(22382): Failed to load providerinstaller module: No acceptable module found. Local version is 0 and remote version is 0.
D/ApplicationLoaders(22382): Returning zygote-cached class loader: /system/framework/android.hidl.base-V1.0-java.jar
D/ApplicationLoaders(22382): Returning zygote-cached class loader: /system/framework/android.hidl.manager-V1.0-java.jar
D/ApplicationLoaders(22382): Returning zygote-cached class loader: /system/framework/android.hidl.base-V1.0-java.jar
I/com.dsc.viu_ap(22382): The ClassLoaderContext is a special shared library.
W/BiChannelGoogleApi(22382): [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzak@a5e5857
I/com.dsc.viu_ap(22382): The ClassLoaderContext is a special shared library.
I/com.dsc.viu_ap(22382): The ClassLoaderContext is a special shared library.
I/com.dsc.viu_ap(22382): NativeAlloc concurrent copying GC freed 16121(979KB) AllocSpace objects, 13(376KB) LOS objects, 49% free, 1791KB/3583KB, paused 22.289ms total 224.233ms
I/com.dsc.viu_ap(22382): The ClassLoaderContext is a special shared library.
W/com.dsc.viu_ap(22382): Accessing hidden field Ldalvik/system/BaseDexClassLoader;->pathList:Ldalvik/system/DexPathList; (greylist, reflection, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden field Ldalvik/system/DexPathList;->nativeLibraryDirectories:Ljava/util/List; (greylist, reflection, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden field Ldalvik/system/DexPathList;->systemNativeLibraryDirectories:Ljava/util/List; (greylist, reflection, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden field Ldalvik/system/DexPathList;->nativeLibraryPathElements:[Ldalvik/system/DexPathList$NativeLibraryElement; (greylist, reflection, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Ldalvik/system/DexPathList;->makePathElements(Ljava/util/List;)[Ldalvik/system/DexPathList$NativeLibraryElement; (greylist, reflection, allowed)
V/NativeCrypto(22382): Registering com/google/android/gms/org/conscrypt/NativeCrypto's 284 native methods...
W/com.dsc.viu_ap(22382): Accessing hidden method Ljava/security/spec/ECParameterSpec;->getCurveName()Ljava/lang/String; (greylist, reflection, allowed)
D/NetworkSecurityConfig(22382): No Network Security Config specified, using platform default
I/ProviderInstaller(22382): Installed default security provider GmsCore_OpenSSL
W/com.dsc.viu_ap(22382): Accessing hidden method Lsun/misc/Unsafe;->getLong(Ljava/lang/Object;J)J (greylist,core-platform-api, linking, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Lsun/misc/Unsafe;->arrayBaseOffset(Ljava/lang/Class;)I (greylist,core-platform-api, linking, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Lsun/misc/Unsafe;->copyMemory(JJJ)V (greylist, linking, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Lsun/misc/Unsafe;->objectFieldOffset(Ljava/lang/reflect/Field;)J (greylist,core-platform-api, linking, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Lsun/misc/Unsafe;->getByte(J)B (greylist,core-platform-api, linking, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Lsun/misc/Unsafe;->getByte(Ljava/lang/Object;J)B (greylist,core-platform-api, linking, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Lsun/misc/Unsafe;->getLong(J)J (greylist,core-platform-api, linking, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Lsun/misc/Unsafe;->putByte(JB)V (greylist,core-platform-api, linking, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Lsun/misc/Unsafe;->putByte(Ljava/lang/Object;JB)V (greylist,core-platform-api, linking, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Lsun/misc/Unsafe;->getLong(Ljava/lang/Object;J)J (greylist,core-platform-api, reflection, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Lsun/misc/Unsafe;->getLong(Ljava/lang/Object;J)J (greylist,core-platform-api, reflection, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden field Ljava/nio/Buffer;->address:J (greylist, reflection, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden field Ljava/net/Socket;->impl:Ljava/net/SocketImpl; (greylist, reflection, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Ldalvik/system/CloseGuard;->get()Ldalvik/system/CloseGuard; (greylist,core-platform-api, linking, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Ldalvik/system/CloseGuard;->open(Ljava/lang/String;)V (greylist,core-platform-api, linking, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden field Ljava/io/FileDescriptor;->descriptor:I (greylist, JNI, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Ljava/security/spec/ECParameterSpec;->setCurveName(Ljava/lang/String;)V (greylist, reflection, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Lsun/security/x509/AlgorithmId;->get(Ljava/lang/String;)Lsun/security/x509/AlgorithmId; (greylist, reflection, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Lsun/security/x509/AlgorithmId;->getName()Ljava/lang/String; (greylist,core-platform-api, reflection, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Ldalvik/system/BlockGuard;->getThreadPolicy()Ldalvik/system/BlockGuard$Policy; (greylist,core-platform-api, linking, allowed)
W/com.dsc.viu_ap(22382): Accessing hidden method Ldalvik/system/BlockGuard$Policy;->onNetwork()V (greylist, linking, allowed)
W/BiChannelGoogleApi(22382): [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzak@a5e5857
D/FirebaseAuth(22382): Notifying id token listeners about user ( UhkwQ6lvz3ZwYoBdLH6zod0Li353 ).
W/Firestore(22382): (19.0.0) [FirestoreCallCredentials]: Failed to get token: com.google.firebase.firestore.FirebaseFirestoreException: getToken aborted due to token change.
I/flutter (22382): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter (22382): The following ArgumentError was thrown building AppDrawer(dirty, state: AppDrawerState#ebffb):
I/flutter (22382): Invalid argument(s)
I/flutter (22382):
I/flutter (22382): When the exception was thrown, this was the stack:
I/flutter (22382): #0 _StringBase.+ (dart:core-patch/string_patch.dart:260:57)
I/flutter (22382): #1 AppDrawerState._createHeader (package:viu_app/widget/drawer.dart:110:38)
I/flutter (22382): #2 AppDrawerState.build (package:viu_app/widget/drawer.dart:41:11)
I/flutter (22382): #3 StatefulElement.build (package:flutter/src/widgets/framework.dart:4012:27)
I/flutter (22382): #4 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3924:15)
I/flutter (22382): #5 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #6 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
I/flutter (22382): #7 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4053:11)
I/flutter (22382): #8 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
I/flutter (22382): #9 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (22382): #10 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (22382): #11 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #12 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #13 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
I/flutter (22382): #14 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
I/flutter (22382): #15 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (22382): #16 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (22382): #17 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
I/flutter (22382): #18 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (22382): #19 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (22382): #20 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #21 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #22 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
I/flutter (22382): #23 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4053:11)
I/flutter (22382): #24 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
I/flutter (22382): #25 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (22382): #26 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (22382): #27 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
I/flutter (22382): #28 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (22382): #29 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (22382): #30 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
I/flutter (22382): #31 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (22382): #32 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (22382): #33 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
I/flutter (22382): #34 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (22382): #35 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5198:32)
I/flutter (22382): #36 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (22382): #37 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (22382): #38 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
I/flutter (22382): #39 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (22382): #40 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (22382): #41 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5099:14)
I/flutter (22382): #42 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #43 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #44 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #45 StatefulElement.update (package:flutter/src/widgets/framework.dart:4085:5)
I/flutter (22382): #46 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #47 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #48 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #49 StatelessElement.update (package:flutter/src/widgets/framework.dart:3981:5)
I/flutter (22382): #50 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #51 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3077:38)
I/flutter (22382): #52 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (22382): #53 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #54 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #55 ProxyElement.update (package:flutter/src/widgets/framework.dart:4219:5)
I/flutter (22382): #56 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #57 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #58 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #59 StatefulElement.update (package:flutter/src/widgets/framework.dart:4085:5)
I/flutter (22382): #60 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #61 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #62 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #63 ProxyElement.update (package:flutter/src/widgets/framework.dart:4219:5)
I/flutter (22382): #64 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #65 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #66 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #67 ProxyElement.update (package:flutter/src/widgets/framework.dart:4219:5)
I/flutter (22382): #68 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #69 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:4817:32)
I/flutter (22382): #70 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5208:17)
I/flutter (22382): #71 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #72 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #73 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #74 StatefulElement.update (package:flutter/src/widgets/framework.dart:4085:5)
I/flutter (22382): #75 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #76 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #77 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #78 ProxyElement.update (package:flutter/src/widgets/framework.dart:4219:5)
I/flutter (22382): #79 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #80 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #81 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #82 StatefulElement.update (package:flutter/src/widgets/framework.dart:4085:5)
I/flutter (22382): #83 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #84 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5099:14)
I/flutter (22382): #85 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #86 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #87 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #88 StatelessElement.update (package:flutter/src/widgets/framework.dart:3981:5)
I/flutter (22382): #89 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #90 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5099:14)
I/flutter (22382): #91 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #92 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #93 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #94 StatefulElement.update (package:flutter/src/widgets/framework.dart:4085:5)
I/flutter (22382): #95 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #96 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #97 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #98 StatefulElement.update (package:flutter/src/widgets/framework.dart:4085:5)
I/flutter (22382): #99 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #100 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #101 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #102 ProxyElement.update (package:flutter/src/widgets/framework.dart:4219:5)
I/flutter (22382): #103 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #104 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #105 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #106 ProxyElement.update (package:flutter/src/widgets/framework.dart:4219:5)
I/flutter (22382): #107 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (22382): #108 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (22382): #109 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (22382): #110 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2340:33)
I/flutter (22382): #111 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:700:20)
I/flutter (22382): #112 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:285:5)
I/flutter (22382): #113 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1016:15)
I/flutter (22382): #114 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:958:9)
I/flutter (22382): #115 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:874:5)
I/flutter (22382): #119 _invoke (dart:ui/hooks.dart:236:10)
I/flutter (22382): #120 _drawFrame (dart:ui/hooks.dart:194:3)
I/flutter (22382): (elided 3 frames from package dart:async)
I/flutter (22382): ════════════════════════════════════════════════════════════════════════════════════════════════════
在 initState 中,您正在调用一个 async 函数 _getCurrentUser。因此,当 initState 继续并且页面以 _uname 呈现为 null 时,此函数自然会异步执行。
显示名称时出现空指针异常导致红屏
要么用空字符串初始化 _uname
String _uname = '';
或在显示名称时使用 null 感知运算符
child: Text("Welcome " + _uname ?? '',
style: TextStyle(
color: Colors.white,
fontSize: 20.0,
fontWeight: FontWeight.w500))),
]));