Kub*_*ber 5 python firebase google-cloud-functions google-cloud-firestore
我正在迈出使用 Cloud Firestore 的第一步,但我陷入了困境。我正在寻找一个 where 查询来返回限制值>=。
[{
'limit': 100,
'value': 200
},
{
'limit': 50,
'value: 50,
},
{
'limit': 95,
'value': 90,
}]
Run Code Online (Sandbox Code Playgroud)
我在云函数中使用 Firebase Admin Python SDK。
有什么提示吗?
正如 Alex 所解释的,使用 Firestore 执行查询时无法比较两个文档的字段值。
一种可能的方法是将文档保存到数据库时保存不等式的结果。如果在保存“检查”文档时您知道两个值(limit和value),则可以添加第三个字段,例如,valueAboveLimit其值为True或False,该字段是您在保存“检查”文档时计算的(即来自使用相应的客户端 SDK 的前端或使用 Firebase Admin Python SDK 的服务器,具体取决于您编写 Firestore 文档的方式)。
那么你的查询就会很简单:
database = firestore.client()
col_checks = database.collection('checks')
query_checks = col_checks.where('valueAboveLimit', '==', True)
results = query_checks.get()
Run Code Online (Sandbox Code Playgroud)
如果您在保存 Firestore 文档时没有limit和的值value(例如稍后写入该字段),您可以使用在 Firestore 文档更改时limit触发的云函数,并且如果这两个字段存在,计算并保存该字段。valueAboveLimit
| 归档时间: |
|
| 查看次数: |
3439 次 |
| 最近记录: |