首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Flutter -从Firestore获取数据,并在应用程序启动时保存到提供商

Flutter是一种跨平台的移动应用开发框架,可以同时在Android和iOS上构建高性能、美观的应用程序。Firestore是谷歌云平台提供的一种NoSQL文档数据库,用于存储和同步应用程序的数据。

在Flutter中从Firestore获取数据并保存到提供商,可以按照以下步骤进行:

  1. 引入Firestore依赖:在Flutter项目的pubspec.yaml文件中添加cloud_firestore依赖。
  2. 初始化Firestore:在应用程序启动时,使用Firebase提供的初始化方法初始化Firestore。这通常在main.dart文件的main函数中完成。
代码语言:txt
复制
import 'package:firebase_core/firebase_core.dart';
import 'package:cloud_firestore/cloud_firestore.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(MyApp());
}
  1. 获取数据:使用Firestore提供的API从数据库中获取数据。可以使用collectiondocument方法指定要获取的集合和文档。
代码语言:txt
复制
CollectionReference users = FirebaseFirestore.instance.collection('users');
DocumentSnapshot snapshot = await users.doc('user1').get();
Map<String, dynamic> data = snapshot.data();
  1. 保存数据到提供商:将获取到的数据保存到应用程序的提供商中,以便在应用程序启动时使用。
代码语言:txt
复制
class DataProvider extends ChangeNotifier {
  Map<String, dynamic> _data;

  Map<String, dynamic> get data => _data;

  void setData(Map<String, dynamic> newData) {
    _data = newData;
    notifyListeners();
  }
}

void main() async {
  // ...

  DocumentSnapshot snapshot = await users.doc('user1').get();
  Map<String, dynamic> data = snapshot.data();

  DataProvider dataProvider = DataProvider();
  dataProvider.setData(data);

  // ...
}

这样,在整个应用程序中,您可以使用DataProvider来访问保存的数据。

关于Flutter和Firestore的更多信息,您可以参考以下链接:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Flutter 移动端架构实践:Widget-Async-Bloc-Service

WABS 模式鼓励我们将所有状态管理的逻辑都移动到数据层,我们马上将了解它。 数据层 在数据层中,我们可以定义 局部 或 全局 应用程序的状态,以及修改它的代码。...换句话说,我们可以将Service视为 纯粹 的功能组件, 它可以修改和转换第三方库收到的数据。...输入的数据(读取):将来自Firestore文档的键值对的流转换为强类型的不可变数据Model。 数据输出(写入):将数据Model转换为键值对,以便写入Firestore。...无论如何,我发现BLoCs在使用Firestore构建app时效果非常明显,其中数据通过流后端流入app。 在这种情况下,通常将流进行组合或使用RxDart对其执行转换,BLoC很擅长这个。...Flutter和Firebase Udemy课程中相关深入的资料进行了补充,链接如下: Flutter&Firebase:构建一个完整的iOS和Android的应用程序

16K20

HomeRental - 预订房产 带有聊天功能的完整 Flutter 应用程序获取X | 网络管理面板v1.0.9

简介 HomeRental 是一款用于出租公寓、公寓、公寓、高级和现代住宅的应用程序。Android 和 iOS 均运行良好。 特点: 1. 介绍页面有 3 张幻灯片,精美的外观和 UI 感觉。...数据库 MySQL 与 API JSON + PHP 完全集成(标头密钥身份验证)q 5. 水平类别,显示租金每个类别和搜索自动完成 6....单聊天模块就绪,一对一聊天(图像和文本)Cloud Firestore。 16. 忘记密码,社交登录按钮(Facebook、Gmail、Apple ID)是模板 17....改进 Flutter 代码,提高性能 安装需求 1. Flutter 框架 ( https://flutter.dev) 2. 服务器、托管、支持 SSL 的域 (https) 3....获取 Storage lite 数据库键值对 3. Firebase 集成(FCM、身份验证、通知) 4. Google Map 集成(需要 API Google Key) 5.

10010

2023 Google 开发者大会:Firebase技术探索与实践:hello world 到更快捷、更经济的最佳实践

开发人员可以利用它更快更轻松地创建高质量的应用程序。该平台拥有众多的工具和服务,其中包括实时数据库、云函数、身份验证和更多。近年来,Firebase推出了一系列的更新和新特性,其中包括并发属性。...,将结构化的数据存到云端 使用Firebase安全规则保护你的数据库 要做实现这些功能,我们需要先创建Firebase项目,登录控制台,创建项目,并选择一些自己要集成的服务。...我们需要开启这些服务 启用电子邮件登录以进行 Firebase 身份验证 设置 Cloud Firestore 项目中集成Firebase 为了让前端应用程序使用 Firebase,我们需要将 Firebase...库添加到应用程序。...可以 Google 的 CDN 添加库,也可以使用 npm 在本地安装它们,然后将它们打包到应用程序中。

33060

2019年3月4日 Go生态洞察:Go Cloud Development Kit的新动态 ️

你可以使用这些API编写应用程序,然后在任何组合的提供商上部署它,包括AWS、GCP、Azure、本地,或者单个开发者机器上进行测试。通过实现一个接口,可以添加额外的提供商。...与传统方法不同,传统方法需要你为每个云提供商编写新的应用程序代码,使用Go CDK,你只需一次编写应用程序代码,使用我们的可移植API访问下面列出的服务集合。...然后,你可以在任何支持的云上运行你的应用程序,只需进行最小配置更改。 我们当前的API集包括: blob,用于持久化blob数据。...我们还在开发文档存储API(例如MongoDB、DynamoDB、Firestore)。...反馈 我们希望您和我们一样对Go CDK感到兴奋 - 查看我们的godoc,走一遍我们的教程,并在您的应用程序中使用Go CDK。我们很乐意听到您对其他API和API提供商的想法。

9110

我们弃用 Firebase 了

你可以编写实现实时数据同步的应用程序,而且不需要开发大量的传输逻辑。那些在自制即时通讯应用程序中使用了长轮询请求的的用户肯定会喜欢它。...Firestore 的文档 / 集合架构:它迫使人们仔细考虑数据建模。它还反映了一个直观的导航方案。 Firestore 中的关系数据也是如此。...直接 Google Cloud Console 下载。 GCP 似乎正在蚕食 Firebase 开发环境。 运营的角度来看,这是合理的。...点击底部阅读原文访问 InfoQ 官网,获取更多精彩内容!...,亚马逊云科技推出云原生数据战略 Serverless时代已经全面到来:冷启动时间降低90%,数据分析All on Serverless 如何破解Web3的「存力」难题?

32.5K30

App、H5、PC应用多端开发框架Flutter 2发布

Flutter框架已经推出有两年了,但是之前一直在移动端App发力,慢慢发展到了PC端。在window电脑的应用程序和mac电脑的应用程序。...我们的目标是从根本上改变开发人员对构建应用程序的想法,不是你目标的平台开始,而是你想要创建的体验开始。Flutter 让你手工制作美丽的体验,你的品牌和设计走到了最前沿。...此初始版本特别关注三种应用程序场景: 渐进式web应用程序(PWA),将web的覆盖范围与桌面应用程序的功能结合起来。 单页应用程序(spa),只需加载一次,就可以在互联网服务之间传输数据。...成长中的Flutter生态系统 目前,Flutter和Dart的软件包已超过15000个:亚马逊、微软、Adobe、阿里巴巴、eBay和Square等公司;到Lottie、Sentry和SVG等关键软件包...最重要的是,这个特性并不是一个突破性的变化:您可以按照自己的速度将它添加到代码中,并在准备就绪时提供迁移工具来帮助您。

8.9K30

【干货】手把手教你用苹果Core ML和Swift开发人脸目标识别APP

Swift客户端将图像上传到云存储,这会触发Firebase,在Node.js中发出预测请求,并将生成的预测图像和数据存到云存储和Firestore中。...将带有新框的图像保存到云存储,然后将图像的文件路径写入Cloud Firestore,以便在iOS应用程序中读取路径并下载新图像(使用矩形): ? ?...最后,在我的iOS应用程序中,可以监听图像Firestore路径的更新。如果检测到,我会下载图像,并与检测分数一起显示在应用程序中。这个函数将替换上面第一个Swift代码片段中的注释: ?...但是,我会花时间来标识更多的图片,我将更新模型,并在应用程序商店发布应用程序:) ▌下一步是什么? ---- ---- 这篇文章涵盖了很多信息。要想自己构建这个系统?...在我的函数中,我向Firestore写预测元数据

14.7K60

用 awaitasync 正确链接 Javascript 中的多个函数

我发现大多数关于链接多个函数的文章都没有用,因为他们倾向于发布MSDN 复制粘贴的不完整的演示代码。...然后我们需要 async 函数 getEmailOfCourseWithCourseId() Firestore获取课程的电子邮件地址。...我们不知道 Firestore 获取内容需要多长时间,因此它是 async 的,我们需要运行接下来的两个函数并返回(或以 promise 解析)courseEmail 。...为此,我们将 saveToCloudFireStore() 和 sendEmailInSendgrid() 响应(它们返回的内容)保存到变量中,其唯一目的是标记上述函数何时完成。...此外,数据库代码不能原封不动的复制 —— 它仅用于说明目的! 原文:https://nikodunk.com/how-to-chain-functions-with-await-async/

6.3K30

Flutter 3.7 新特性:介绍后台isolate通道

,我很高兴地宣布 Flutter 3.7 开始开发人员可以在任意 isolate 中使用插件和平台通道了。...下面是后台 isolate 一个人为的用例: 试想,一个应用程序可通过人工智能根据文本提示生成高分辨率图像。用户之前创作都被存储在 Firebase Cloud 中,需求是用户可以用手机随时分享创作。...该 Flutter 应用启动时会开启一个后台 isolate Firebase Cloud Store 下载 8K 文本提示相关图片,将图像压缩至指定规格大小导出,保存到相册,最后导出完成并发送通知...在此示例中,后台 isolate 至少使用了 3 个插件,一个用于 Firebase Cloud Storage 中请求数据;接着保存到手机相册,保存完毕发送本地通知告诉用户。...package:shared_preferences/shared_preferences.dart'; void main() { //root isolate传给后台isolate标志 //(API开始Flutter3.7

4.2K40

Flutter2 来了!!!

我们的目标是从根本上改变开发人员对构建应用程序的看法,而不是您要定位的平台开始,而要从您要创建的体验开始。Flutter使您可以在品牌和设计走在前列的情况下,手工创造美好的体验。...在今天发布的Flutter 2中,我们将Flutter移动框架扩展到了可移植框架,释放了您的应用程序,使其可以在各种不同的平台上运行,而几乎没有改变。...此初始版本特别关注三种应用程序场景: 渐进式Web应用程序(PWA),将Web的访问范围与桌面应用程序的功能结合在一起。 单页应用程序(SPA),一次加载并与Internet服务之间进行数据传输。...我们还将宣布对Flutter插件的一些核心Firebase服务进行更新:身份验证,Cloud Firestore,Cloud Functions,Cloud Messaging,Cloud Storage...请访问Flutter 2上的独立技术博客,以获取有关许多新功能和性能改进的信息,我们认为这将使现有的Flutter开发人员满意,并立即下载。 ?

3.2K20

详解数据库连接池 Druid

1 为什么需要连接池 假如没有连接池,我们操作数据库的流程如下: 应用程序使用数据库驱动建立和数据库的 TCP 连接 ; 用户进行身份验证 ; 身份验证通过,应用进行读写数据库操作 ; 操作结束后,关闭...当我们有了连接池,应用程序启动时就预先建立多个数据库连接对象,然后将连接对象保存到连接池中。当客户请求到来时,池中取出一个连接对象为客户服务。...之后,需要保存到 Connections 数组里,并唤醒到其他的线程,这样就可以池子里获取连接。...接下来进入获取连接的重点:getConnectionInternal 方法如何池子里获取连接。...: 我们简单梳理下 Druid 的保证连接有效有哪些策略: 1、销毁连接线程定时检测所有的连接,关闭空闲时间过大的连接 ,假如配置了活参数,那么会继续维护待活的连接; 2、应用每次数据源中获取连接时候

1.4K10

如何使用 Flutter 创建桌面应用程序

如何使用 Flutter 创建桌面应用程序 介绍 开发人员可以选择编写多种类型的应用程序:控制台应用程序、移动应用程序、Web 应用程序和桌面应用程序。...当特定的 Flutter 应用程序启动时Flutter 将通过Skia 图形库呈现应用程序的 UI 控件。 为什么 Flutter 如此受欢迎?...使用 Flutter 开发桌面应用程序 在本教程中,我将展示如何使用 Flutter 制作一个简单的跨平台桌面应用程序。...它还有一个操作按钮,可以将当前笔记保存到文件中。TextPad 的屏幕截图如下所示。 示例应用程序的屏幕截图 如上所述,右上角的保存按钮会将当前笔记写入文本文件。...桌面应用程序 在将您的应用程序发布到 Internet 之前,您可以构建 Flutter 应用程序获取可移植的二进制文件。

4.4K20

Google添加Gemini到数据库,加快代码开发和迁移

Google Cloud 宣布,其数据库产品(包括 Bigtable、Spanner、Memorystore for Redis、Firestore、CloudSQL for MySQL 和 AlloyDB...分析师称,谷歌并不是将 SQL 代码生成添加到其功能列表中的唯一数据提供商。...使用 Gemini 管理和迁移数据库 为了帮助更好地管理数据库,云服务提供商正在添加一项名为 Database Center 的新功能,该功能将允许操作员单个窗格管理整个数据库群集。...“拥有集中控制意味着企业可以对其安全、数据访问和服务级别协议 (SLA) 的策略保持一致。首席分析师解释说,这是朝着我们期望云端获得的简化迈出的重要一步。...新功能包括允许基于生成式 AI 的应用程序使用自然语言查询数据以及一种新型数据库视图。 该公司表示,启用自然语言查询数据功能将允许基于 AI 的应用程序响应企业团队提出的更多问题集。

12110
领券