簡體   English   中英

Flutter/Firebase 錯誤 - 未處理的異常:輸入“_CompactLinkedHashSet”<void> &#39; 不是類型 &#39;FutureOr 的子類型<Set<Future<void> &gt;&gt;&#39;

[英]Flutter/Firebase error - Unhandled Exception: type '_CompactLinkedHashSet<void>' is not a subtype of type 'FutureOr<Set<Future<void>>>'

我正在嘗試允許用戶使用 firebase 注冊使用我的應用程序。 我有一個“創建帳戶”按鈕,按下后我希望我的 submit() 函數被執行。 這是我的提交功能:

  Future submit() async {
if (validate()) {
  _formKey.currentState.reset();
  await firebaseAuth
      .createUserWithEmailAndPassword(
          email: _emailController.text, password: _passwordController.text)
      .then(
        (user) => {
          FirebaseFirestore.instance
              .collection('users')
              .doc(user.user.uid)
              .set(
            {
              'id': user.user.uid,
              'displayName': _firstNameController.text.trim() +
                  " " +
                  _lastNameController.text.trim(),
              'email': _emailController.text.trim(),
              'createdat': DateTime.now(),
            },
          ),
        },
      )
      .catchError(
        (err) => {
          print(
            err.toString(),
          ),
        },
      );
}

}

然后我在這里調用它:

                          RaisedButton(
                          child: Text(
                            'Create an Account',
                            style: TextStyle(color: Colors.white),
                          ),
                          onPressed: () async {
                            await submit();
                          }),

但是,當我運行我的應用程序時,填寫我的注冊表單,然后按提交按鈕,我收到以下消息:

    [VERBOSE-2:ui_dart_state.cc(177)] Unhandled Exception: type '_CompactLinkedHashSet<void>' is not a subtype of type 'FutureOr<Set<Future<void>>>'
#0      _FutureListener.handleError (dart:async/future_impl.dart:160:20)
#1      Future._propagateToListeners.handleError (dart:async/future_impl.dart:708:47)
#2      Future._propagateToListeners (dart:async/future_impl.dart:729:24)
#3      Future._completeError (dart:async/future_impl.dart:537:5)
#4      _AsyncAwaitCompleter.completeError (dart:async-patch/async_patch.dart:47:15)
#5      FirebaseAuth.createUserWithEmailAndPassword (package:firebase_auth/src/firebase_auth.dart)
<asynchronous suspension>
#6      _SignUpPageState.submit (package:consi/screens/SignUpPage.dart:68:12)
#7      _SignUpPageState.build.<anonymous closure> (package:consi/screens/SignUpPage.dart:242:39)
#8      _SignUpPageState.build.<anonymous closure> (package:consi/screens/SignUpPage.dart:241:42)
#9      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:993:19<…>

有人可以幫我解決這個問題嗎? 謝謝

嘗試刪除如下代碼的 Future 類型,然后調用提交按鈕。

如果不起作用; 在注冊期間調用的每個函數中刪除它。

如果問題仍然存在,我建議您通過在此視圖上放置斷點來進行內聯調試,以便您可以看到程序本身如何執行每一行代碼。

submit() async {
if (validate()) {
  _formKey.currentState.reset();
  await firebaseAuth
      .createUserWithEmailAndPassword(
          email: _emailController.text, password: _passwordController.text)
      .then(
        (user) => {
          FirebaseFirestore.instance
              .collection('users')
              .doc(user.user.uid)
              .set(
            {
              'id': user.user.uid,
              'displayName': _firstNameController.text.trim() +
                  " " +
                  _lastNameController.text.trim(),
              'email': _emailController.text.trim(),
              'createdat': DateTime.now(),
            },
          ),
        },
      )
      .catchError(
        (err) => {
          print(
            err.toString(),
          ),
        },
      );
}

暫無
暫無

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

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