reactjs - 如何使用 JavaScript SDK 或 React Native Firebase 有条件地向 Firestore 查询添加条件?
问题描述
为了处理无限滚动,我创建了一个根据所需行为向查询添加条件的函数:
const queryDocs = async (behavior: string = 'start', limit: number = 25) => {
let augmentedQuery: Query<DocumentData> | CollectionReference<DocumentData> = query
try {
if (behavior === 'start' || behavior === 'limited') {
augmentedQuery = augmentedQuery.limit(limit)
}
if (behavior === 'next' && lastItem) {
augmentedQuery = augmentedQuery.limit(limit).startAfter(lastItem)
}
const snapshot = await augmentedQuery.get()
if (behavior === 'start' || behavior === 'next') {
setLastItem(snapshot.docs[snapshot.docs.length - 1])
}
return snapshot
} catch (error) {
throw functionError(error, 'queryDocs', [behavior, limit], 'useCollection')
}
}
我收到以下错误:
在模块 useCollection 中的 queryData("start",1) 上:尝试分配给只读属性。
我们可以采用先前的查询并添加 .where 或 .limit 吗?
是否有处理条件查询的解决方案?
谢谢
编辑:正如 Doug 在讨论中所说,完全有可能像这样链接查询。该错误来自另一个来源。这段代码被放入一个共享包中,该包从 TypeScript 重新编译为 ES6,然后在 React Native 中使用。将所有代码合并到 React Native 目录后,错误发生了变化。我有一个请求创建一个带有链接的复合索引,这很简单。
解决方案
推荐阅读
- python - 覆盖父类中的函数
- reactjs - 在 React js Uncaught RangeError: Maximum call stack size exceeded at shouldFilterFiber at mountFiberRecursively
- apache - Mod_Rewrite:重写图像 URL 的 htaccess 规则
- python - 正确分组和聚合以避免随机效应问题
- azure - Azure WebAPP HTTP 请求持续时间
- php - Symfony 异常订阅者未触发
- python - 初学者 Python 网页抓取问题
- python - 从函数内部的其他 python 模块访问 python 变量
- python - 如何修复关闭文件的 I/O 操作?
- python-3.x - 如何在 Django 模板中为代码片段着色