问题标签 [ckquery]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
201 浏览

swift - CKQuery 与 CloudKit 问题

我对 CloudKit 很陌生,我只是想运行最基本的查询。我想从 RecordType "Users" 和字段类型 "Name" 中提取,并且名称等于我的 nameText 标签!

请在下面查看我的代码:

0 投票
2 回答
2067 浏览

ios - 如何在 CloudKit 中查询 recordID [CKRecordID]

我的谓词想要排除一些已经下载并在 [CKRecordID] 中可用的记录。现在我可以查询 1 个 CKRecordID[0],但不能查询 [CKRecordID] 数组。如何查询数组?

这有效:

但这不会:

错误:loadImageCompareRecordIDsAndEndDateThatHaveNotEnded 错误:无效谓词:无效谓词:数组成员必须符合 CKRecordValue:(“”,“”,“”,“”,“”)(CKRecordID)

代码的其他通用部分:

0 投票
1 回答
77 浏览

ios - 停止虚假的 CloudKit 调用?

我有一个 CloudKit 应用程序,它在 publicDB 中有数据。这是任何授权用户都可以创建和读取的安全数据,但我会根据我的应用程序进行的查询来限制它。例如,声明与用户 A 和用户 B 的关系但不是用户 C 的数据对象永远不会被用户 C 查询。

我担心有人可能越狱/劫持我的应用程序并执行授权应用程序有能力执行但永远不会执行的查询。我如何确定“经过身份验证”的用户实际上是正常使用我的应用程序的真正经过身份验证的用户,而不是某些第三方将代码注入我的应用程序?

0 投票
2 回答
2940 浏览

ios - 如何获取当前用户创建的所有 CloudKit 记录?

假设我有一个“物种”记录类型,其中包含由许多用户创建的公共记录。目前,我的查询检索“物种”的所有记录:

如何仅获取当前用户(如设备所有者)创建的记录?

谢谢!

0 投票
1 回答
671 浏览

nspredicate - 使用“CONTAINS”运算符时,带有 NSPredicate 的 CKQuery 失败

根据 Apples Class Reference CKQuery,运算符CONTAINS是受支持的运算符之一。但是,这似乎不起作用。我有一个RecordType被叫myRecord和一个字段名称name类型的记录String。我尝试使用两种不同的谓词来获取记录,一种使用“==”运算符,一种使用CONTAINS运算符。

使用Predicate1,输出为:

使用Predicate2,输出为:

也使用[c]忽略大小写会导致服务器问题。

如何CONTAINS正确使用运算符?

编辑: 我现在仔细查看了文档,发现CONTAINS只能与SELF. 这意味着所有字符串字段都将用于搜索。没有更好的方法吗?

0 投票
2 回答
255 浏览

ios - CKQuery存在时CKQueryOperation存在的原因

除了能够链接不同的 CKQuery 以及设置检索结果的限制之外,为什么还需要 CKQueryOperation 呢?基本上都是这两个功能吗?因为我只是不确定有 CKQueryOperation 的原因是什么。

0 投票
1 回答
145 浏览

ios - CKQueryOperation resultLimit max 和 request count

最大数字是resultLimit多少?我来自 parse.com,所以我习惯于使用批量下载来轻松地一次提取 1000 行数据,而这将算作一次请求调用。有什么样的限制CKQueryOperation?提前致谢!

0 投票
0 回答
285 浏览

nspredicate - 使用基于 CKReference 的谓词执行 CKQueryOperation 不返回所有“拥有的记录”

我的架构如下

RecordType:OwnedEvents 包含一个名为“Owner”的元素。此 Owner 元素指向从“OwnedEvents”类型的 RecordType 创建的 CKReference。

我有 N 个 OwnedEvents 对象都指向一个 Owner 对象。

当我执行查询以检索指向给定 Owner 对象的所有记录时,我发现在某些情况下,查询不会返回指向它的所有记录(在大多数情况下它确实返回它)。它也不会在完成块中返回错误。当我转到 CloudKit 仪表板时,我看到所有 OwnedEvents 对象都指向相同且正确的 Owner 对象,正如预期的那样。我用来检索的代码如下。

我的问题是:

  1. 这种“无声”的失败是意料之中的吗?即我需要识别并恢复吗?或者我在查询中做错了什么?

  2. 如果不是所有符合条件的记录都被检索到,有没有办法说查询必须返回错误?(即 fetch 的原子版本..我猜不是,因为很难提前知道预期的匹配记录数是多少,但我想知道是否可以在 fetch 或架构中指定一些内容提示获取结果中预期的最小记录数)。

  3. 与使用“获取列 X > N1 和列 X 的 OwnedEvents 类型的所有记录”形式的谓词相比,使用使用引用形成的谓词进行提取是否更有效

    • 引用指向同一组记录,N1...N2
    • 即,如果基于参考的检索将不可靠,我不妨远离它并采取蛮力方法,如果它不是更快的话。至少在后者我有一个简单的方法来识别错误

使用的代码

0 投票
2 回答
772 浏览

cloudkit - CloudKit:删除记录的 CKQueryOperation

有没有一种方法可以在不使用的情况下查询 CloudKit 以获取最近删除的项目(可能来自特定的时间戳)CKFetchRecordChangesOperation?我正在使用公共数据库,所以我不能使用自定义区域(这将是 的要求CKFetchRecordChangesOperation)......所以我需要一种方法来用公共数据库模拟这个。

我希望能够针对 CloudKit 记录中的更改有效地更新我的本地核心数据缓存。当您查询 CloudKit 记录时,CKRecord 似乎有一个creationDateandmodificationDate属性,可以查询该属性以查看最近创建/修改的记录,但这不适用于在 CloudKit 中删除的记录。

这里有什么有效的策略?

0 投票
1 回答
258 浏览

ios - Cloudkit 返回具有特定字符串的记录

在我的项目中,使用 CloudKit 记录类型“用户”(我也使用其他记录类型名称进行了测试),我创建了一个带有电子邮件字段的记录。

我正在尝试准确匹配该电子邮件并获取匹配的记录。我正在使用 IN 或 == 谓词(对于单个或电子邮件列表)执行此操作。

我遇到问题的电子邮件是“julio_ukohgsp_chevez@tfbnw.net”,任何使用此电子邮件检索记录的尝试都会返回 0,但是如果我将其更改为“julio_ukohgsp_chevez@tfbnw.ne”,它将检索到 OK。

最初我认为它是特殊字符,但其他字符串可以正常工作。然后我假设长度,但其他更长的字符串工作正常。

还有其他人有这个问题吗?我很难相信 CloudKit 却不明白为什么它不能匹配这个字符串。

我问了一个类似的问题,但在获得详细信息之前,用户能够对此进行测试并使用此字符串得到相同的结果。这篇文章更加简洁,并且有重新创建的步骤。