簡體   English   中英

從 firestore 數據庫獲取數據時出現“未處理的異常:null 值上使用的 Null 檢查運算符”

[英]Getting "Unhandled Exception: Null check operator used on a null value" while getting data from firestore database

大家好,我正在從事 flutter 項目,我正在從 firestore 數據庫獲取用戶信息,但是當我獲取該信息時,它會拋出異常

錯誤:

E/flutter (18952): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Null check operator used on a null value
E/flutter (18952): #0      _ProfileState.getData (package:recipedia/Tabs/profile.dart:30:86)
E/flutter (18952): <asynchronous suspension>

我的代碼:

Future<void> getData() async {
  emailFromPrefs = (await SharedPreference().getCred('email'))!;
  nameFromDatabase = (await UserModel().getUser(emailFromPrefs, 'name'))!;

  setState(() {
    name = nameFromDatabase;
    email = emailFromPrefs;
  });
}

我的用戶模型 Class 獲取數據 function:

Future<String?> getUser(String email, String data) async {
  try {
    CollectionReference users =
        FirebaseFirestore.instance.collection('users');
    final snapshot = await users.doc(email!).get();
    final data = snapshot.data() as Map<String, dynamic>;
    return data['$data'];
  } catch (e) {
    return 'Error fetching user';
  }
}

而不是使用! 嘗試先進行 null 檢查。

Future<void> getData() async {
  final mEmail = await SharedPreference().getCred('email');
  if(mEmail==null){
     debugPrint("Got null on email");
     return;}
 
   emailFromPrefs = mEmail;
   final mName = await UserModel().getUser(emailFromPrefs, 'name');
 
   if(mName ==null){
     debugPrint("Got null on name");
     return;
   }
   nameFromDatabase  = mName;

  setState(() {
    name = nameFromDatabase;
    email = emailFromPrefs;
  });
}

users.doc(email.).get()上的getUser也是如此。 try-catch 應該處理這個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM