【发布时间】:2021-08-04 16:48:46
【问题描述】:
我的 Firestore 数据库设置是
我想在“UserBasicInfo”子集合中找到“playerName”字段值。这是我的代码:
`
Firebase.Firestore.Query 查询 = db.CollectionGroup("UserBasicInfo").WhereEqualTo("playerName", name).Limit(1);
var queryNameTask = query.GetSnapshotAsync();
while (!queryNameTask.IsCompleted) 等待Task.Yield();
var querySnapshot = queryNameTask.Result;
foreach (DocumentSnapshot documentSnapshot in querySnapshot.Documents)
{
DatabasePlayerStats databasePlayerStats = documentSnapshot.ConvertTo<DatabasePlayerStats>();
searchingName = databasePlayerStats.playerName;
}`
即使“玩家名称”字段值查询中存在“名称”,也总是返回空。
这是我的索引豁免:
【问题讨论】:
-
我不完全明白你想要获取什么,你想获取包含
player_uCI4字段的文档吗?或者你到底想得到什么? -
是的,我想获取“playerName”字段值与查询搜索名称相同的文档。在本例中,这是“player_uCI4”。
-
我认为你需要用 querySnapshot 做一个承诺,你可以看到这个 doc 可以帮助你
-
感谢您的回复,但实际上我在 c# 中使用异步等待,这是我用于查询的其余代码:while (!queryNameTask.IsCompleted) await Task.Yield(); var querySnapshot = queryNameTask.Result;我认为与 promise 相同的功能
-
我尝试了另一个查询相同的路径,但这个条件是 WhereGreaterThanOrEqualTo。并且令人惊讶的是查询结果不是空的,但它提供了 WhereGreaterThan 条件但不提供相等条件。这是我的新查询代码:` Query query = db.CollectionGroup("UserBasicInfo").WhereGreaterThanOrEqualTo("playerName", name); var queryNameTask = query.GetSnapshotAsync(); while (!queryNameTask.IsCompleted) 等待 Task.Yield(); var querySnapshot2 = queryNameTask.Result; ` 问题是否仅与相等查询有关?
标签: c# firebase unity3d google-cloud-firestore