调用方法“ Email”为空

问题描述

您是否知道我为什么会收到错误方法'[]'在null上调用。 接收者:null 尝试调用:每次打开此按钮时,都会显示错误。如果有人知道,请评论您的解决方案。 :)

.onAppear {
            // MARK: - fetch from CloudKit
            self.userList.names = []
            let myUserID = UserDefaults.standard.string(forKey: self.signInWithAppleManager.userIdentifierKey)!
            // get my subs projects
            CloudKitHelper.getBossSubs(bossID: myUserID) { (results) in
                switch results{
                    
                case .success(let user):
                    print("Users appended")
                    self.userList.names = user.names
                case .failure(let er):
                    print(er.localizedDescription)
                }
            }
        }

这里是我的注册方法

 Future<DocumentSnapshot> getUserInfo() async {
    var firebaseUser = await FirebaseAuth.instance.currentUser;
    return await FirebaseFirestore.instance.collection("SerX")
        .doc(firebaseUser.uid)
        .get();
  }
signUp() async {
     if(_formKey.currentState.validate()){
       setState(() {
         isLoading = true;
       });
       await authService.signUpWithEmailAndPassword(emailEditingController.text,password1.text).then((result)  {
         if(result != null){
           Map<String,String> userDataMap = {
             "Username" : usernameEditingController.text,"Email" : emailEditingController.text,};

           databaseService.addUserInfo(userDataMap);

           HelperFunction.saveUserLoggedInSharedPreference(true);   

    HelperFunction.saveUserNameSharedPreference(usernameEditingController.text); 
          HelperFunction.saveUserEmailSharedPreference(emailEditingController.text);

           Navigator.pushReplacement(context,MaterialPageRoute(
               builder: (context) => LoadingBarForUserCreation()
           ));
         }else{
           print(result);
         }
       }).catchError((e){
         _showSettingPanelForEmail();
       });
     }

  }

firebase

解决方法

package.json

并在您的注册中

   Future<void> addUserInfo(id,userData) async {
    await FirebaseFirestore.instance.collection("SerX").doc(id).set(userData);

  }