firebase - 将文档映射到有例外的列表
问题描述
我正在使用 firestore 将文档查询到自定义列表。但我想指定该文档是否包含当前用户 ID,它不应该放在列表中。
澄清一下:这是一堆卡片。每张卡都可以选择跳过。如果用户跳过它,他们的 id 将被放入该卡的名为“skipped”的字段中。因此,当前用户不应该再次看到该卡,因为该卡有一个字段表明他们的 id 已跳过它。
就像是:
List<CustomCard> cards =
snapshot.documents.where(/* current ID DOESN'T exists in doc["skipped"], so adds to map*/).map((doc) => CustomCard.fromDocument(doc)).toList();
以下是我将用户 ID 添加到卡跳过字段的方式:
//On skip button pressed, call:
handleSkip() {
cardRef.document(projectId).updateData({'skipped.$currentUid': true});
}
如果当前用户 id 已跳过它,我该如何关闭堆栈上的卡片?
解决方案
Cloud Firestore 中没有“不等于”或“不包含”查询。两种可能的解决方法是:
- 隐藏用户在客户端中喜欢的卡片。
- 保留用户不喜欢的所有卡片的列表,然后在用户喜欢该卡片时将其删除。
鉴于我想说的用例#1 似乎最可行。
另见:
推荐阅读
- reactjs - 运行`npm run build`时Reactjs缺少文件
- css - css 在使用 scss 的反应应用程序中不起作用
- javascript - 反应原生垂直平面列表不向下滚动
- python - 在一维布尔数组中查找连续区域
- python - python pygame窗口不会关闭“没有响应”
- javascript - 使用 Javascript、DOM 和 replaceChild() 方法创建装箱单
- snakemake - 没有歧义时的 AmbiguousRuleException
- python - 有选择地删除熊猫数据框 NaN 行,按包含重复项的 id 列分组
- flutter - VS Code Wrap with Widget Auto Suggestion 建议参数/参数
- python - Matplotlib 获取 z 数据