Ошибка дротика: необработанное исключение: E / flutter (5079): неверный аргумент: экземпляр 'Future <String>' - PullRequest
0 голосов
/ 23 сентября 2018

Я пытаюсь добавить документ в мою облачную базу данных Firestore.Таким образом.

Future<String> currentlyIn()async{
     FirebaseAuth auth = FirebaseAuth.instance;
    String fuser = await auth.currentUser();
    });
     return fuser.uid;
   }


Map<String, dynamic> votedown() {
    Map<String, dynamic> comdata = <String, dynamic>{
      'user_Id':currentlyIn(),
      'actual_vote':0,
      'voteUp': false,

    };
    return comdata;
  }

DocumentReference storeReference =Firestore.instance.collection('htOne').document('docq');
  await storeReference.setData(votedown());

Однако я получаю эту ошибку каждый раз, когда запускаю код.Мне нужна помощь о том, как это сделать успешно

E/flutter ( 6263): [ERROR:flutter/shell/common/shell.cc(181)] Dart Error: Unhandled exception: 
E/flutter ( 6263): Invalid argument: Instance of 'Future<String>'
E/flutter ( 6263): #0      StandardMessageCodec.writeValue (package:flutter/src/services/message_codecs.dart:353:7) 
E/flutter ( 6263): #1      FirestoreMessageCodec.writeValue (file:///C:/NoFlutterPerms/Git/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.7.4/lib/src/firestore_message_codec.dart:38:13)

Ответы [ 2 ]

0 голосов
/ 23 сентября 2018

Вы пытаетесь использовать Future<String> объект в качестве String Следовательно, он дает ошибку.Попробуйте этот код ниже.

  currentlyIn().then((value){
   Map<String, dynamic> comdata = <String, dynamic>{
  'user_Id': value,
  'actual_vote':0,
  'voteUp': false,
   };

  return comdata;
  });
0 голосов
/ 23 сентября 2018

currentlyIn возвращает Future.Вы должны относиться к этому как таковой.Будущее не преобразуется автоматически в значение, которое оно завершает.

Вы можете использовать async / await, например:

Future<Map<String, dynamic>> votedown() async {
    Map<String, dynamic> comdata = <String, dynamic>{
      'user_Id': await currentlyIn(),
      'actual_vote':0,
      'voteUp': false,

    };
    return comdata;
  }

DocumentReference storeReference =Firestore.instance.collection('htOne').document('docq');
  await storeReference.setData(await votedown());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...