以下是我的代码。我正在尝试从 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
最佳答案
因为 Future<:String:> 返回一个 Future<:String:>,而不是一个字符串。你可以通过await得到这个;
print(await getID());
关于Flutter/Dart 返回 '_Future<String>' 的实例而不是实际的字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74924075/