javascript - Firebase Firestore 查询超过 10 个元素的数组
问题描述
我正在尝试使用用户设置查询 post-collection,但设置是一个包含 10 多个元素的数组,并且没有返回任何内容。我知道文件确实提到了 10 个元素的限制,有人知道解决方法吗?
firebaseApp.collection('posts')
.where("newTag", "in", mySettings)
.get()
let array = [];
posts.forEach((post) => {
array.push(post.data());
});
dispatch({ type: ActionTypes.GET_POSTS, payload: array });
解决方案
一个对数组进行分块的简单函数可以解决您的问题:
const chunkArray = (list: any[], chunk: number): any[][] => {
const result = [];
for (let i = 0; i < list.length; i += chunk) {
result.push(list.slice(i, i + chunk));
}
return result;
};
export { chunkArray };
然后 for await hack 也可以获取快照:
const snaps_collection: FirebaseFirestore.QuerySnapshot[] = [];
for await (const snap of chunks.map(
async (chunk) =>
await database
.collection("collection_name")
.where("id", "in", chunk)
.get()
)) {
snaps_collection.push(snap);
}
推荐阅读
- c# - 使用 PasswordChar True 在文本框上显示文本
- sql - SQL 错误:ROW_NUMBER() OVER (PARTITION
- vue.js - NativeScript-Vue 找不到模块
- ios - UITableViewCell contentView 具有 autoResizingMask 约束“UIView-Encapsulated-Layout-Height”与自动调整大小的自动布局冲突
- c++ - 虚拟“默认”析构函数和显式空析构函数有什么区别?
- c - 线性搜索没有返回正确的索引
- python-3.x - sklearn 决策树分类器:如何控制每个拆分的最大分支数
- javascript - 为什么在事件处理函数外部定义的函数需要保存在事件处理函数内部的新变量中?
- c++ - C++ 双向链表:如何显示 Destructor 已正确实现
- r - 比例的一个样本假设检验