📜  从 Future 实例获取数据<DocumentSnapshot>(1)

📅  最后修改于: 2023-12-03 15:21:52.435000             🧑  作者: Mango

从 Future 实例获取数据

在Flutter撰写应用程序时,常常需要从Cloud Firestore中获取数据。在获取数据过程中,需要将Future实例与DocumentSnapshot结合使用。本文将介绍如何在Flutter应用程序中获取Cloud Firestore中的数据。

引入Cloud Firestore

在Flutter中使用Cloud Firestore,需要安装Cloud Firestore库。你可以在pubspec.yaml文件中添加以下行:

dependencies:
  cloud_firestore:
初始化Firestore

在使用Firestore之前,你需要先进行初始化。在Flutter中,你可以在应用程序的入口文件中执行以下初始化代码:

import 'package:cloud_firestore/cloud_firestore.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  FirebaseFirestore.instance.settings = Settings(
    persistenceEnabled: true,
    cacheSizeBytes: Settings.CACHE_SIZE_UNLIMITED,
  );
  runApp(MyApp());
}
获取数据

在使用Firestore中,你可以使用 collectiondocument 引用来获取数据。在以下代码中,我们将从“users”集合中的“john_doe”文档中获取数据:

CollectionReference users = FirebaseFirestore.instance.collection('users');
DocumentSnapshot document = await users.doc('john_doe').get();
Map<String, dynamic> data = document.data();
String firstName = data.containsKey('firstName') ? data['firstName'] : '';

在上面代码中,我们首先使用FirebaseFirestore实例创建了一个名为“users”的集合引用。然后,我们从“john_doe”文档中获取了数据。最后,我们通过调用 data() 方法获取了该文档的内容。

注意,我们将以下调用包装在 async/await 块中以获取Future结果。这保证了我们在读取集合时阻塞应用程序的执行。

结论

在Flutter中获取Cloud Firestore中的数据需要使用Future实例和 DocumentSnapshot。通过这篇文章,读者已经了解到如何初始化Firestore,如何从集合中获取DocumentSnapshot引用,以及如何将数据放入Map中。希望这篇文章对Flutter开发者来说是有益的。