swift - 将字典发布到 Firestore 时获取 NSInvalidArgumentException
问题描述
我正在尝试将一组自定义对象添加到 Firestore 数据库。字典如下所示:
for (n, eventInArray) in currentEvents.enumerated() {
ref.updateData(["Events":
[n:
["activity": eventInArray.activity],
["dateAndTime"]: ["date": eventInArray.dateAndTime.date,
"time": eventInArray.dateAndTime.time],
"name": eventInArray.name
]])}
但是在运行应用程序并发送数据时,我收到以下错误消息:
NSInvalidArgumentException',原因:'-[__NSCFNumber getBytes:maxLength:usedLength:encoding:options:range:remainingRange:]:无法识别的选择器发送到实例 0xd628e63903198e1c'
解决方案
我想出了一个解决这个问题的方法。
我没有更新一个字段,而是使用 do - catch 块更新了整个文档:
do {
try ref.setData(from: groupDataForDb)
} catch let error {
print("Error writing to firestore \(error)")
}
groupDataForDb 变量是一个符合 Codable 的结构,并且具有与 Firestore 文档中的字段匹配的属性。
推荐阅读
- php - 获取mysql中的特定行
- python - 当语句为假时如何重复代码[Python]
- json - 使用变量嵌套字段名称查询嵌套 Mongodb 信息
- ios - Objective-C:无法使用 Socket.IO 连接到服务器
- macos - 活动窗口关闭时恢复上一个活动窗口
- redhat - 无法在 RHEL 7 中安装 Chrome
- python - 在开始和结束 nD 数组之间生成渐变 (n+1)D 数组变形
- azure - 识别 Azure Log Analytics 可用 SKU 的编程方法
- c# - 收听新的音频会话,因为它们出现在 Windows 音量混合器中
- python - 为所有用户安装一个python包而不弄乱系统python安装