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

Flutter如何停止监听单个firestore文档文件(flutter 2.2空安全)

在Flutter 2.2空安全版本中,要停止监听单个Firestore文档文件,可以使用Firestore提供的DocumentReference对象的snapshots()方法来监听文档的变化,并通过调用返回的StreamSubscription对象的cancel()方法来停止监听。

下面是一个示例代码,演示如何停止监听单个Firestore文档文件:

代码语言:txt
复制
import 'package:cloud_firestore/cloud_firestore.dart';

// 创建Firestore实例
final FirebaseFirestore firestore = FirebaseFirestore.instance;

// 获取要监听的文档引用
final DocumentReference documentRef = firestore.collection('collectionName').doc('documentId');

// 开始监听文档变化
StreamSubscription<DocumentSnapshot> subscription = documentRef.snapshots().listen((snapshot) {
  // 处理文档变化
  // ...
});

// 停止监听
subscription.cancel();

在上面的代码中,首先创建了一个Firestore实例,并获取了要监听的文档引用。然后使用snapshots()方法开始监听文档的变化,并通过listen()方法订阅文档快照的流。最后,通过调用cancel()方法停止监听。

需要注意的是,cancel()方法必须在不需要继续监听时调用,以释放资源并停止监听。

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

相关·内容

Flutter 2.8正式版发布了,还不来看看

如果你正在使用 google_maps_flutter 插件或 video_player 插件的 Web 版本,或者你正在遵循 Flutter 团队关于 如何优化网络上显示图像 的建议,那说明你已经在使用平台视图了...已经有很多人要求能够在 Flutter Web 应用中托管 Web 视图,这允许开发者利用单个源代码库构建移动或 Web 应用。在 Flutter Web 应用中托管 Web 视图是什么样的?...Firestore Object/Document 映射 (ODM) 我们同时发布了 Firestore 对象 / 文档映射 (ODM) 的 Alpha 版本,Firestore ODM 的目标是让开发者更高效的通过类型安全...这是对我们如何处理特定于设备的键盘输入的方式的重新设计,以及和重构 Flutter 处理文本编辑方式的持续工作的补充,所有这些都是用键盘这样输入密集型的桌面应用所必需的。...由于资源有限,我们决定最近将停止更新 dev 渠道。

22.4K30

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

请注意上图是如何单个控件连接到BLoC的输入与输出,我们也可以使用这种模式将一个控件连接到输入,然后将另外一个控件连接到输出: [1240] 换句话说,我们可以实现一个 生产者-消费者 的数据流。...但是要明确: 1.如果需要以某种方式组合,我建议在单个BLoC中使用多个流。 2.我不鼓励在一个BLoC中使用多个StreamControllers。...示例: Firestore service 我们可以实现一个FirestoreDatabase的Service作为Firestore的指定域的API包装器。...输入的数据(读取):将来自Firestore文档的键值对的流转换为强类型的不可变数据Model。 数据输出(写入):将数据Model转换为键值对,以便写入Firestore。...无论如何,我发现BLoCs在使用Firestore构建app时效果非常明显,其中数据通过流从后端流入app。 在这种情况下,通常将流进行组合或使用RxDart对其执行转换,BLoC很擅长这个。

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

    谷歌支付(googlepay)还报告称,他们的工程师效率要高得多,技术债务大幅减少,iOS和Android的安全审查和实验等统一发布流程。...: Authentication, Cloud Firestore, Cloud Functions, Cloud Messaging, Cloud Storage, and Crashlytics,...我们还宣布了几个核心Firebase服务的flatter插件的更新:身份验证、云Firestore、云功能、云消息传递、云存储和Crashlytics,包括对声音安全的支持和云消息传递包的大修。...Google在所有这些平台上都有一流的性能,良好的安全性保证了运行时和开发期间的约束。...Dart 2.12是我们自2.0以来最大的版本,支持声音零安全。健全的安全性有可能消除可怕的引用异常,在开发和运行时提供保证,即只有在开发人员明确选择的情况下,类型才能包含值。

    8.9K30

    Flutter State生命周期

    2.2 State生命周期 前面说过了StatefullWidget,这节我们来说说State的生命周期,这在flutter开发中是非常重要的。...2.2.1实测 写个有状态类并混入WidgetsBindingObserver配合监听特殊状态及其一个按钮,调用setState, 给生命周期的方法新增打印: import 'package:flutter...如果用户调用了setState时则状态刷新,重新build; 3.如果销毁先停用然后dispose销毁再结束; 构造函数 构造函数不属于生命周期,必然是要第一个调用的,也就是调用前State的widget属性为。...didChangeDependencies 依赖改变 顾名思义,依赖项更改时调用,但也会在initState之后调用, 在这个方法调用[BuildContext.inheritFromWidgetOfExactType]是安全的...dispose 销毁 当State对象被销毁时调用,通常在此回调中释放资源和移除监听

    83520

    Flutter 实战快速实现音视频通话应用

    前言 本文将引导你如何使用ZEGO Flutter SDK 快速轻松的构建一个跨平台音视频聊天应用,大大降低开发成本,适合想要快速完成多端共用音视频项目的开发者。...创建的项目信息可用于SDK的集成和配置; 2.2 Token 鉴权 登录房间时必须 使用 Token 鉴权 ,可参考 Token 鉴权教程 为了方便开发阶段的调试,开发者可直接在 ZEGO 控制台获取临时...如监听到当前为呼叫状态,则 SDK 会自动停止使用音频设备,直到通话结束。...监听登录房间后的事件回调 根据实际应用需要,在登录房间后监听想要关注的事件通知,比如房间状态更新、用户状态更新、流状态更新等。 onRoomStateUpdate:房间状态更新回调。...监听推流后的事件回调 根据实际应用需要,在推流后监听想要关注的事件通知,比如推流状态更新等。 onPublisherStateUpdate:推流状态更新回调。

    3.9K20

    Flutter2 来了!!!

    我们还将宣布对Flutter插件的一些核心Firebase服务进行更新:身份验证,Cloud Firestore,Cloud Functions,Cloud Messaging,Cloud Storage...和Crashlytics,包括对可靠的null安全性的支持以及对Cloud Messaging软件包的全面检查。...在所有这些平台上的Google级性能,可靠的null安全性保证了运行时和开发过程中的null约束。 没有其他语言可以结合所有这些功能。...Dart 2.12现已上市,是我们自2.0版以来最大的发行版,支持声音无效安全性。...在Flutter中,我们提供了一个开放源代码工具包,用于通过单个代码库构建针对移动,台式机,Web和嵌入式设备的美观而快速的应用程序,这些应用程序既可以满足Google的苛刻需求,也可以满足我们客户的需求

    3.2K20

    Flutter | 通过一个小例子带你认识动画 Animation

    关于如何实现,后面再说,先来说一下 Flutter 中的动画基础知识。...Animation Flutter 中的动画系统基于 「Animation」,「Widgets」 可以直接将这些动画合并到自己的 build 方法中来读取它们的当前值或者监听它们的状态变化,或者可以将其作为的更复杂动画的基础传递给其他...一般用 .addListener 方法来添加一个监听器,在这个监听器里你可以获取当前的状态和值,但是这个监听是只要有动作就会回调,如果只想要监听当前的状态,那么就只需要用 .addStatusListener...例如让动画正向播放和停止。...8.vsync:当前上下文的 TickerProvider,可以通过 resync 来更改它,不能为

    1.4K30

    Flutter 专题】134 图解动画小插曲之 SVGA 动画

    集成 svgaplayer_flutter 与所有插件使用相同,和尚引入对应版本的 svgaplayer_flutter;目前 svgaplayer_flutter 已支持 Flutter 2.0...安全; svgaplayer_flutter: ^2.1.2 2....svgaUrl : null)); } } 2.2 SVGAImage & SVGAAnimationController SVGASimpleImage 是将 SVGAImage 和 SVGAAnimationController...提供了常用的播放方法,和尚简单尝试几种常用的; reset 动画重置; forward 动画播放,和尚建议若动画从头开始播放先调用 reset 使动画重置,防止其他操作影响动画起始位置; stop 动画停止...,与 Lottie 动画不同,SVGAAnimationController 没有提供对应的暂停方法,和尚将 stop 理解为暂停和停止,若继续播放则调用 forward 即可; reverse 动画反转

    1.4K40

    最佳实践丨Flutter音视频开发实践

    Flutter视频渲染 在 Native 平台都有系统组件来渲染视频,但 Flutter 没有这样的东西,该如何渲染视频呢? ?...然后构建了向 Native View 传递方法的通道(如开始音视频渲染、停止音视频渲染) ?...回调了一个viewController的对象,提供了开始、停止方法。 调用示例: ? 函数式设计 这种设计方案TRTCCloudVideoView只是提供一个Native view的承载器。...具体的开始停止过程放在主函数文件去调用。TRTCCloudVideoView会回调一个viewId, 通过viewId来调用startLocalPreview开始视频渲染方法渲染具体的view。...3.事件监听 ? 4.显示本地视频 ? 5.显示远端视频 ? 腾讯云通信 一直致力于 让每个企业 都享受智慧服务带来的改变 END 未来可期 ?

    1.9K10

    认识MethodChannel

    上次从一个路径插件看来一下Flutter如何调用iOS和Android中的方法以及平台如何返回值给Flutter框架。今天就来详细讲讲MethodChannel是如何连同另一个世界的。...---- 1.从吐司弹框开始说起(Android端/Java) 想要达成的效果是这样使用可以弹出一个时间较长的吐司 这个示例要讲述的是Flutter如何向平台传递参数 ?...2.1:创建插件类: 现在来看iOS端如何接受Flutter中的参数,和Android中基本一致,首先要获得渠道 在iOS里FlutterMethodChannel通过渠道标识和FlutterViewController...public func handleToast(msg: String, type: Int) { Toast.toast(text: msg,type:type) } } ---- 2.2...监听器是设置在了messenger的身上,如果监听器非会使用IncomingMethodCallHandler messenger需要的监听器的类型是BinaryMessenger.BinaryMessageHandler

    2.4K30

    Android Flutter:手把手教你如何进行Android 与 Flutter的相互通信

    ) 数据流通道(EventChannel) 2.2 设计原理 三种通道各有用途,但设计上相近,均有三个重要成员变量: 附录:Flutter定义了两种Codec:MessageCodec、MethodCodec...EventChannel实例(传入channel name) 定义Native发送数据、停止发送 & 发送失败函数 复写Flutter端开始监听时的回调函数onListen() 复写Flutter端不再接受监听时的回调函数...= null) { eventSink.error(str1, str2, params); } } // 回调时机:Flutter端开始监听该...要展示的布局(Flutter) main.dart: 设置展示的布局 监听Native什么时候发送数据 设置正常接受数据、错误接受数据等方法回调 /** * 导入库 **/ import 'package...count++); } }); // 数到5时停止

    3.1K20

    Flutter实现雨滴动画

    Flutter实现雨滴动画 目的 写了几个Flutter的demo,但是对Flutter的自定义view和动画都不太了解,看到一个类似效果在android的实现,就尝试用Flutter做一下。...isValid() { // (5) return radius < MAX_RADIUS; } } 注释(1)处,上文提到的CustomPainter会把canvas传过来,在这里完成单个水纹的绘制工作...注释(1)处是动画停止的条件判断,当每次点击往_rainList中加一个对象,每个对象绘制会判断大小是否有效,如果无效会被从列表中移出,当列表中没有元素时就停止动画。...Flutter提供了GestureDetector这个widget来做手势识别。所以我们只需要用这个widget wrap住我们的自定义view,然后实现对应的手势监听方法即可。...child: CustomPaint( painter: RainDrop(_rainList), ), ), 这里我们关注用户轻点后抬起的手势,这个监听的方法会传入

    3.5K50

    Flutter Platform Channels(二)

    方法编解码器如何对信封细节的编码就像消息编解码器如何将消息转换为字节一样。...主要关注的是确保我们正在监听来自平台源(在这种情况下为传感器管理器)的事件,并在以下情况下通过事件通道发送它们:1)Dart侧至少有一个流监听器和2)activity正在运行。...stream handler实现应该在调用前者(onListen)时开始将事件倾注到事件接收器中,并在调用后者(onCancel)时停止。...如果希望通过平台通道接收到的值是非(non-null)的,那么可以设置一些参数使其立即取消引用,或者在存储数据之前断言它是非的。 根据你的编程语言,你可以将其分配给非可类型的变量。...两个简单的例子: // Dart: 我们期望接收到一个非的整型list。

    2.9K00

    Dart Isolate

    所有 Dart 代码运行在一个 Isolate 里,它像机器上的一个小空间,有自己的私有内存块和运行事件循环的单个线程。...2、两种方式可以生成Isolate ① Isolate.spawn ② compute() 3、Isolate是如何实现内存隔离的 参考文章:[ Dart 中的 Isolate](https://links.jianshu.com...5、创建Isolate示例 ① 创建Isolate ② 准备获取发送过来的数据 ③ 将2边sendPort进行绑定 ④ 创建监听监听那边发过来的数据和SendPort ⑤ 开始往那边发送数据和SendPort...flutter: 执行:9 flutter: 执行:9 flutter: 执行:9 flutter: 执行:9 flutter: 执行:10 flutter: 执行...创建监听监听那边发过来的数据和SendPort receivePort.listen((message) { print('执行:7'); // ----> 7.

    2.1K75

    Flutter 实战-快速实现音视频通话应用

    前言 本文将引导你如何使用ZEGO Flutter SDK 快速轻松的构建一个跨平台音视频聊天应用,大大降低开发成本,适合想要快速完成多端共用音视频项目的开发者; 1 准备环境 在开始集成 ZEGO...如监听到当前为呼叫状态,则 SDK 会自动停止使用音频设备,直到通话结束。...监听登录房间后的事件回调 根据实际应用需要,在登录房间后监听想要关注的事件通知,比如房间状态更新、用户状态更新、流状态更新等。 onRoomStateUpdate:房间状态更新回调。...监听推流后的事件回调 根据实际应用需要,在推流后监听想要关注的事件通知,比如推流状态更新等。 onPublisherStateUpdate:推流状态更新回调。...5.6 停止推拉流 1. 停止推流/预览/渲染 调用 stopPublishingStream 接口停止向远端用户发送本端的音视频流。

    3.8K10
    领券