数据存储常见问题
API
API 调用次数有什么限制吗
使用 标准版,每天有 API 读写请求三万次的免费额度。
推送服务免费使用,并不占用免费额度,推送消息接口的调用受频率限制,具体参考:推送消息接口的限制 文档。
API 调用次数的计算
对于数据存储来说,每次 create 和 update 一个对象的数据算 1 次请求,如调用 1 次 object.saveInBackground 算 1 次 API 请求。在 API 调用失败的情况下,如果是由于应用流控超限(错误码 429)而被云端拒绝,则不会算成 1 次请求;如果是其他原因,例如权限不够(错误码 430),那么仍会算为 1 次请求。
一次请求
createsavefetchfinddeletedeleteAll
调用一次 fetch 或 find 通过 include 返回了 100 个关联对象,算 1 次 API 请求。调用一次 find 或 deleteAll 来查找或删除 500 条记录,只算 1 次 API 请求。
多次请求
saveAllfetchAll
调用一次 saveAll 或 fetchAll 来保存或获取 array 里面 100 个 对象,算 100 次 API 请求。
对于 query 则是按照请求数来计费,与结果的大小无关。query.count 算 1 次 API 请求。collection fetch 也是按照请求次数来计费。
如何获取 API 的访问日志
开发者中心后台暂不支持查看 API 访问日志。
其他语言调用 REST API 如何对参数进行编码
REST API 文档使用 curl 作为示范,其中 --data-urlencode 表示要对参数进行 URL encode 编码。
如果是 GET 请求,直接将经过 URL encode 的参数通过 & 连接起来,放到 URL 的问号后。如 https://API_BASE_URL/1.1/login?username=xxxx&password=xxxxx。
查询
如何实现大小写不敏感的查询
目前不提供直接支持,可采用正则表达式查询的办法,具体参考 StackOverflow - MongoDB: Is it possible to make a case-insensitive query。
使用各平台 SDK 的 AVQuery 对象提供的 matchesRegex 方法(Android SDK 用 whereMatches 方法)。