在 Swift 中向 Firebase 数组添加项目,无需先观察数组

2023-12-03

目前,我通过首先观察数组,附加我的新帖子,然后更新引用来向我的 Firebase 数组添加一个新帖子:

REF_USER.child(UID).observeSingleEventOfType(.Value, withBlock: { snapshot in
   if !snapshot.exists() {return}
   if let dict = snapshot.value as? Dictionary<String, AnyObject>, 
      let posts = dict["posts" as? [String] {
      posts.append(newPost)
      REF_USER.child(UID + "/posts").setValue(posts)
   }
}

有没有办法跳过观察步骤,并立即更新数组中的帖子?假设,类似:

REF_USER.child(UID + "/posts").addToArray(newPost)

在 Firebase 中避免使用数组通常是一个很好的做法,因为它们非常难以处理;各个元素无法直接访问,也无法更新——必须重写。

不确定为什么您要按照问题中概述的步骤添加新帖子,但这是另一个解决方案:

thisPostRef = postsRef.childByAutoId //create a new post node
thisPostRef.setValue("here's a new post") //store the post in it

Edit:

这将导致这样的结构

posts
  post_id_0: "here's a new post"
  post_id_1: "another post"
  post_id_2: "cool post"

这种结构避免了数组的缺陷。

另一个编辑。 OP询问如何将其写入users/UID/posts节点

usersRef = rootRef.childByAppendingPath("users")
thisUserRef = usersRef.childByAppendingPath(the users uid)
thisUserPostRef = thisUserRef.childByAutoId //create a new post node
thisUserPostRef.setValue("here's a new post") //store the post in it
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Swift 中向 Firebase 数组添加项目,无需先观察数组 的相关文章

随机推荐

  • 未初始化的常量 Cucumber::Rails::Database (NameError) cucumber + mongoid

    大家好 我是黄瓜新手 我有一个带有 mongoid 的应用程序 我的数据库中有database cleanerGemfile gem database cleaner gt 0 7 2 group gt test In my app fea
  • h5py OSError:无法打开文件(未找到文件签名)

    我对使用 h5py 时收到的错误感到有点困惑 我正在尝试应用 python 脚本来循环访问位于不同目录中的 h5py 文件集 例如 第一组 h5py 文件位于 减少 rho 0 75 2 数据 快照 当我运行 python 脚本时fromR
  • Web 服务器不支持 InnoDB MYSQL

    我创建了一个数据库InnoDB引擎 现在我正在使用www 000webhost com并且它不支持InnoDB Engine 我应该怎么办 我的数据库已完成 可以启动了 有谁知道如何解决这个问题吗 我曾经也有过一样的问题 我被迫使用的提供程
  • XPages - 仅在日期字段中保存日期

    我正在使用编辑框控件来显示日期字段 保存 XPage 时 我只想保存日期 现在日期和时间都被保存 有什么办法可以做到这一点吗 这是我的代码
  • 如何在 webpacker Rails 6 中使 JS 函数全局化

    我尝试像以前在 Rails 5 中那样组织我的前端 我有一些带有函数的 js 文件 并根据我的需要在代码的不同位置使用了这些函数 但在 Rails 6 中 使用 js 是完全不同的 不管怎样 我想我已经了解了 packs 和 webpack
  • 谷歌地图当前交通路线及航路点

    我正在使用 google 地图 api 来获取带有urationInTraffic 选项的方向 var request origin start address destination end address waypoints waypt
  • LLVM 7.0 不提供 Visual Studio 2015 上的特定平台工具集

    我刚刚安装了几个小时前发布的适用于 Windows 64 位 的 LLVM 7 0 0 在新版本中 以前版本 6 0 1 为 Visual Studio 2015 提供的所有平台工具集 名为 LLVM vs2014 LLVM vs2014
  • Heroku 上的 Django - 编程错误 / 关系“...”不存在

    我越来越this错误 我知道您通常会收到此错误 因为数据库未正确迁移 当我跑步时heroku local web 当我访问时该网站运行良好localhost 5000 但是 在我将应用程序部署到 heroku 后git push herok
  • XMoveWindow 在 XMapWindow 之前无法工作

    我有一个窗口 我希望能够控制它的显示位置 然而 在调用 XMapWindow 之前调用 XMoveWindow 似乎没有任何效果 The docs什么也别说 帮助 In Xt创建窗口有 x 和 y 坐标 因此您可以在创建时指定位置 请注意
  • 您可以在 .NET 中打开 JPEG、添加文本并重新另存为 JPEG 吗?

    我想在 NET 4 0 中编写一个小程序 它将打开 jpg 或 jpeg 文件 向图像添加一行文本 然后将图像重新保存为 jpg 有谁知道最简单的方法来做到这一点 谢谢你的帮助 像这样的东西 var filePath D Pictures
  • R ggplot2更改*具体*线型图例的背景颜色

    这是一个类似的问题 但解决方案不适用于scale linetype manual 类似但不一样的SO问题 当我使用legend key参数它只插入一个element rectbehind我的体重秤上的线条 见下图 现在我的图表上的所有内容都
  • 如何使用 javascript 从单选按钮列表中查找所选项目

    我需要使用 javascript 从单选按钮列表中查找所选项目 这是我的代码
  • 多级JSON解析

    我在写信多级json解析程序 并且能够获取第一级列表 但在点击第一级列表项时不显示第二级列表 简而言之 我列出了在尝试列出点击类别的视频时遇到的问题的类别 我正在做这样的事情 Main Activity Listing Categories
  • 我应该使用 Java 和哪些 Stun 库?

    Java 我试图编写自己的 STUN 客户端 但似乎我犯了错误 因此 大多数时候它都会被冻结 所以我想知道哪些 STUN 客户端库可用于 Java 以便开始使用 跟进 同时尝试跟进 仍然没有涉及NAT 防火墙后面的解决方案 第1步 击晕等级
  • Firebase 事件保证:事件顺序

    我刚刚开始使用 Firebase 并对以下 URL 中列出的 Firebase 事件保证有疑问 活动保证 其中一项保证规定 来自单个客户端的写入将始终写入服务器并按顺序广播给其他用户 此保证是否还意味着客户端将按照事件广播的顺序接收单个客户
  • HTML 音频标签中未加载音频

    我正在测试音频 HTML 标签 它正在我的测试环境中运行 但由于某种原因不在我的生产环境中运行 我只是使用
  • Scipy griddata 在循环/内存泄漏内不起作用

    我在循环内使用 Scipy 的 griddata 时遇到问题 基本上发生的情况是 在循环运行时内存会无限制地增长 要重现该问题 只需将示例放入 http docs scipy org doc scipy reference generate
  • for循环读取带空格的文件名

    我正在尝试扫描目录中的文件以查找其中的文本 但是每当我遇到从 Windows 中添加到末尾添加 Copy 的文件时 程序都不会读取它 我尝试在传递的名称中使用引号 但没有骰子 FOR R F in CDP do for f tokens a
  • 如何在Asp.Net中的Server.Transfer之前设置响应头?

    我有一个页面 根据某些条件 我要么执行 Response Redirect 要么执行 Server Transfer 现在我想为这两种情况添加标题 所以我正在做以下事情 Response AddHeader Vary User Agent
  • 在 Swift 中向 Firebase 数组添加项目,无需先观察数组

    目前 我通过首先观察数组 附加我的新帖子 然后更新引用来向我的 Firebase 数组添加一个新帖子 REF USER child UID observeSingleEventOfType Value withBlock snapshot