Flutter/Dart 返回 '_Future<String>' 的实例而不是实际的字符串值

标签 flutter firebase dart flutter-web

以下是我的代码。我正在尝试从 Firebase 数据库返回文档 ID 的值,以便我可以删除该特定文档。

Future<String> getID() async {
    List<String> id = [];

    //Map<String, dynamic> user = jsonDecode(jsonString);
    await FirebaseFirestore.instance.collection("Babies").get().then((event) {
      for (final doc in event.docs) {
        id.add(doc.data()['ID']);
      }
    });

    return id.length > 0 ? id[0] : 'No Id';
  }
}

这是调用 getID() 的另一个代码。

ElevatedButton(
            style: ButtonStyle(
                backgroundColor: MaterialStateProperty.all(
                    Color.fromARGB(255, 239, 106, 62))),
            child: const Text("Remove Baby"),
            onPressed: () {
              setState(()  {
                DocumentReference _documentReference = FirebaseFirestore
                    .instance
                    .collection('Babies')
                    .doc(getID().toString());

                _documentReference.delete();
                print(getID().toString());
              });
            },
          ),

运行程序时,

print(getID().toString());

返回“_Future”的实例,而不是实际的文档 ID。

最佳答案

因为 Future<:String:> 返回一个 Future<:String:>,而不是一个字符串。你可以通过await得到这个;

print(await getID());

关于Flutter/Dart 返回 '_Future<String>' 的实例而不是实际的字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74924075/

相关文章:

dart - 列中 RaisedButton 小部件之间出现不需要的空间

android - Firebase 崩溃未关联

arrays - 在 Firebase/Swift 中退出 OvserveEventType 闭包后数组被清除

flutter - flutter_map 中 OpenStreetMap 的深色模式

flutter - Dart 或 Flutter : how do I get the num of processor cores?

firebase - flutter Firebase Admob : AdView not Destroy on Page Navigation

ios - Flutter项目在ios13上运行

android - FloatingActionButton onpressed()无法正常工作

javascript - 想要将 Javascript 中的值转换为 HTML 表单以提交到 Firebase 数据库

dictionary - 在Dart中传递指向 map 的指针