Flutter, как преобразовать Future <bool>в обычный тип bool - PullRequest
1 голос
/ 07 мая 2020

Привет, я пытаюсь использовать Future как обычное логическое значение, как мне использовать эту функцию в качестве определителя для обычного логического значения, чтобы это не вызывало ошибку неправильного типа?

Future<bool> checkIfOnAnyChats() async {
    FirebaseUser user = await _auth.currentUser();

    final QuerySnapshot result = await _firestore
        .collection('chats')
        .where('members', arrayContains: _username)
        .getDocuments();
    final List<DocumentSnapshot> documents = result.documents;

    if(documents.length > 0) {
      return Future<bool>.value(true);
    }else{
      return Future<bool>.value(false);
    }
  }

Как мне применить его к логическому типу нормального типа и не получить эту ошибку? Спасибо. enter image description here

1 Ответ

1 голос
/ 07 мая 2020

вам не нужно конвертировать bool в future, так как вы используете метод asyn c, он вернет только future.

вы можете получить это значение в initstate, вы не можете получить значение вне любого метод.

bool _isInChat;

@override
void initState() {
  super.initState();
  CheckIfOnAnyChats().then((value){
     SetState((){
       _isInChat = value;
     });
  });
}
...