Firebase 在 iOS 上使用 Swift 多次调用“Observe”

2023-12-20

当我开始observer在 Firebase 数据库节点上,我注意到 Firebase 继续调用该方法observer即使没有数据变化。

这是我的设置:

FIRDatabase
    .database()
    .reference(withPath: "test")
    .observe(FIRDataEventType.value, with: { (snapshot) in
            print("Firebase Data Updated");
    }
);

当我做one更改为 Firebase 数据库,observer多次调用其闭包函数。

Firebase 数据已更新

Firebase 数据已更新

Firebase 数据已更新

Firebase 数据已更新

Firebase 数据已更新

Firebase 数据已更新

Firebase 数据已更新

...

为什么会出现这种情况? 我怎样才能阻止这种情况的发生并且只打一个电话observer更新后?


该观察者很可能已被注册多次。当用户注销时,您注册的侦听器块将保持注册状态,这样当用户再次登录时,您将注册第二个侦听器。

捕获ref and handle观察者,并在使用完它们后删除句柄(即当用户注销时)。您可以这样做:

ref, handle = FIRDatabase
    .database()
    .reference(withPath: "test")
    .observe(FIRDataEventType.value, with: { (snapshot) in
            print("Firebase Data Updated");
    }
);

并在退出时:

ref.removeObserverWithHandle(handle)

否则,确保仅调用一次的另一种可能的解决方案是使用.observeSingleEvent()代替.observe().

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Firebase 在 iOS 上使用 Swift 多次调用“Observe” 的相关文章

  • ios如何搜索目录

    我想知道如何检查我的应用程序中是否存在目录 例如 如果我想搜索我的应用程序文档中是否存在文件夹 以及如何在其中创建新文件夹 此致 检查文件是否存在 BOOL fileExistsAtAbsolutePath NSString filenam
  • 如何在ios开发中从mp3文件中提取元数据

    我正在开发一个带有云存储的 ios 音乐播放器 我需要提取音乐信息 如标题 艺术家 艺术作品 我有一个名为 playit 的操作 可以播放和暂停 mp3 文件 它还应该使用与 mp3 文件关联的元数据来填充一些 UILables 和 UII
  • 如何在 Alamofire 中使用“responseDecodable”方法?

    I have been trying to use responseDecodable method from Alamofire but I m getting Generic parameter T could not be infer
  • 如何在javascript中计算日出和日落?

    我正在使用appcelerator titan开发一个IOS应用程序 我想让我的应用程序在日出和日落时向用户发送本地通知 解决这个问题的一个好工具是使用 YQL 的雅虎天气 但是 雅虎天气仅供非商业用途 我正在尝试找到一个javascrip
  • Objective c RSA 与 OAEP 填充 sha256 之前的 ios 10

    我正在研究一种在iPhone中使用RSA加密方法的加密方法 到目前为止我可以用这种方法实现获取加密字符串 该字符串被服务器成功解密 SecKeyRef keyRef self addPublicKey pubKey SecKeyAlgori
  • 如何在Firebase Android应用程序中分离两个不同的用户?

    我有一个应用程序 有两种不同类型的用户 一种是教师 第二种是普通用户 如果普通会员登录 他会去normal memberActivity如果他是教师会员 他会去Teacher memberActivity 我如何在登录活动中执行此操作 我的
  • 使用 HTTP NSURL 创建 AVAsset

    我正在尝试合并两个NSURLs包含视频参考 其中一个 URL 指向 AWS 上的视频 另一个 URL 指向本地存储的视频 我的导出代码有效 因为我已经尝试使用两个本地视频 但每当我尝试合并 HTTP url 和本地 url 时 我都会收到此
  • 尽早检测有问题的 XIB 视图

    我的笔尖名称有一个拼写错误 当我推向导航控制器时 它在代码中被破坏了 弄清楚它并没有花太长时间 但我认为最好尽早断言格式良好 以便更容易弄清楚 问题是它不是零 它只是无法从笔尖正确地形成自己 在 initWithNib 之后是否有更好的断言
  • ios GPUImage,小尺寸图像处理效果不好?

    我正在尝试为 OCR 准备图像 我使用 GPUImage 来完成 代码工作正常 直到我裁剪图像 裁剪后我得到了糟糕的结果 作物面积 https www dropbox com s e3mlp25sl6m55yk IMG 0709 PNG h
  • 如何在禁用状态下更改 UIButton 图像 alpha?

    我有一个带有图像的 UIButton 在其禁用状态下 该图像应具有 0 3 alpha UIButton button UIButton buttonWithType UIButtonTypeCustom UIImage arrowImag
  • 将时间舍入到最接近的三十秒

    我有一个应用程序 它显示每 30 秒过期的数据 准确地说 在 h m s 11 30 00 11 30 30 11 31 00 等 我可以获得当前时间 但我不确定如何计算现在到最近的三十秒之间的时间 我发现的所有内容都是 Objective
  • 在 for 循环中为元组赋值

    struct MIDIPacket 中有一个 UInt8 的元组 正常的赋值是这样的 import CoreMIDI let packet MIDIPacket packet data 0 0x02 packet data 1 0x5f 等
  • tableView.cellForRowAtIndexPath(indexPath) 返回 nil

    我有一个循环遍历表视图的验证函数 问题是它在某个时刻返回 nil 单元格 for var section 0 section lt self tableView numberOfSections section for var row 0
  • 协程和 Firebase:如何实现类似 Javascript 的 Promise.all()

    在 Javascript 中 您可以同时启动两个 或更多 异步任务 等待它们完成 然后执行某些操作 继续 const firstReturn secondReturn await Promise all firstPromise secon
  • watchOS 2 上的最大内存使用量?

    我没有找到任何有关 watchOS 2 中应用程序可用内存使用的信息 我目前正在为 watchOS 开发一个应用程序 并且在手表端使用 Core Data 当我将 189 个对象中的 166 个加载到数组时 应用程序崩溃 此时的内存使用量为
  • -[_SwiftValueencodeWithCoder:]:无法识别的选择器发送到实例

    尝试使用 NSCoder 时出现错误 玩家 swift class Player NSObject NSCoding private var playerName String private var playerScore Int pri
  • 从 Firebase 实时数据库 + 存储加载图像

    我正在使用 Firebase 文档 react redux firebase 中的 create react app 创建类似汽车图片库的东西 图像信息存储在 Firebase 实时数据库中 但实际图像文件存储在 Firebase 存储中
  • Firestore/Firebase 模拟器未运行

    我正在尝试使用此处列出的指南在本地测试我的功能https firebase google com docs functions local emulator https firebase google com docs functions
  • iOS 上的推送通知渐进式 Web 应用程序

    我需要开发一个集成了推送通知的渐进式网络应用程序 在网上搜索我发现了关于这个主题的不同意见 如果我理解正确的话 目前我们无法在移动版 safari 中推送通知 但仅限桌面版 这样对吗 你有什么建议来获得相同的结果吗 我不是iOS专家 我想知
  • 如何从 App Store Connect 中删除自动创建的 macOS 应用程序

    I have an iOS app Recently macOS app automatically appeared in App Store Connect 我不打算在 macOS 上发布 iOS 应用程序 我怎样才能摆脱它 我打开了

随机推荐

  • gnuplot 文件有标准的文件扩展名吗?

    我见过 gnu plt and gplot作为 gnuplot 脚本的文件扩展名 我知道 Linux 不关心文件扩展名 但是什么扩展名最普遍地向人类声明 我是一个 gnuplot 脚本 正如罗曼 珀森博士和尼尔布都指出的那样这篇维基教科书文
  • 使用 XSD 架构进行 Xml 验证

    以下代码帮助我使用 XSD 架构验证 XML 文件 XmlReaderSettings settings new XmlReaderSettings settings Schemas Add null xsdFilePath setting
  • WCF 路由服务 - 动态错误处理

    我正在了解 WCF 路由服务可以做什么 仍处于 摆弄它看看它能做什么 阶段 我对路由服务的理解是 当消息通过时 该服务将尝试将其传递到备份列表中首先出现的端点 如果失败 它将继续尝试下一个 然后再尝试下一个 直到有东西起作用或者没有什么可以
  • opencv中的手动灰度太慢

    注意 我必须手动执行此操作 因此不建议我使用库函数 cvtColor 我是 opencv 的新手 我正在尝试使用以下公式对彩色图像进行灰度化 r g b r g b r g b 3 这是我转换为灰度的方法 C Mat dst src clo
  • 为什么 sizeof(int) 不大于-1? [复制]

    这个问题在这里已经有答案了 这是我的 C 代码 为什么输出为 False 为什么 4 gt 1 code include
  • NoMethodError: # 的未定义方法“[]”

    我是 Ruby on Rails 的新手 我正在使用omni auth 进行 facebook 和 google 身份验证并陷入困境 当我运行 rake db migrate 时 显示以下错误 rake aborted NoMethodEr
  • “Using”关键字调用基类构造函数

    我有以下基类 class Grammateas public Grammateas std string name name name virtual Grammateas private std string name 以及以下派生类 c
  • 从 Linux 用户空间设置 16550A UART 硬件 FIFO 中断级别

    我目前正在使用 16550 兼容的 UART 并且我希望能够更改 FIFO 中断触发级别 我在高 UART 负载下丢失字节 并且我想降低阈值 这是一个动力不足的嵌入式系统 当然 如果我愿意 我可以在 8250 port c 驱动程序中更改它
  • c++ 如何运行内容存储在字符数组中的.exe文件?

    我正在制作一个特定的程序 我只是想知道我是否可以这样做 运行一个文件 其内容存储在 WINDOWS 上的字符数组中 这是读取可执行文件并将其存储在字符数组中的代码 filetoopen open C blahlbah exe ios bin
  • React.memo - 为什么我的相等函数没有被调用?

    我有一个父组件 它根据通过 props 接收到的数组来渲染子组件的集合 import React from react import PropTypes from prop types import shortid from shortid
  • Ruby openssl 中的 AES 等效项?

    Gibberish 库提供了一个很好的 CBC 算法 In Jascascript GibberishAES enc Made with Gibberish n password Outputs U2FsdGVkX1 21O5RB08bav
  • android 动画后按钮不起作用

    我在 android 中创建了一个视图 我需要从下到上对其进行动画处理 反之亦然 我已经使用 TranslateAnimation 成功地做到了这一点 但问题是我的视图上有几个按钮 当动画出现时 触摸点保留在原始位置并且不会移动到新位置 因
  • List 是指针吗?

    我注意到的行为List
  • 始终位于顶部窗口

    我正在寻找一种解决方案 以便使 JFrame 始终处于顶部 并且 始终 我真正的意思是 始终 setAlwaysOnTop true 当我以全屏模式启动游戏时 这将不起作用 我知道您通常不希望窗口保持在顶部 但在这种情况下这是必需的 这是不
  • cdk虚拟滚动问题

    有没有人遇到过 Angular 7 cdk 虚拟滚动在 mat tab 组中工作异常的问题 https github com angular material2 issues 13981 https github com angular m
  • jQuery 分页插件

    希望这是很容易解决的问题 我在理解上遇到了一些问题jQuery 分页 http plugins jquery com project pagination plugin 本质上 我想做的就是加载 PHP 文件 然后对结果进行分页 我试图摆脱
  • 基本类型的 C++ 类包装器

    我见过 使用的许多库都有 typedef 来提供可移植的 固定大小的变量 例如 int8 uint8 int16 uint16 等 无论平台如何 它们都是正确的大小 并且 c 11 本身使用头文件 stdint txt 来实现 H 最近在我
  • 如何在 C++ 中使用小数(浮点)?

    根据IEEE 754 2008 http en wikipedia org wiki IEEE 754 2008有 存在三种二进制浮点基本格式 可以使用 32 64 或 128 位进行编码 和两种十进制浮点基本格式 可以使用 64 或 12
  • 如何通过货币名称获取货币符号?

    我想要获得货币符号 例如 or 按货币名称 例如USD or EUR 对于英语 美国 我可以获得符号 如果英语 美国 设置为设备上的语言 Currency currency Currency getInstance Locale getDe
  • Firebase 在 iOS 上使用 Swift 多次调用“Observe”

    当我开始observer在 Firebase 数据库节点上 我注意到 Firebase 继续调用该方法observer即使没有数据变化 这是我的设置 FIRDatabase database reference withPath test