带有地图的文档字段路径的Flutter Firebase Firestore查询

时间:2020-09-29 23:30:02

标签: firebase flutter dart google-cloud-firestore

我正在尝试根据其他用户是否看到过的文档列表进行排序。 我的数据库结构如下:

following (Document Field){
Dy2k9f2m7uXnnBBPHssPxJucCrK2 : true (Map)
HOIXdQkoerRBgYCGHFRylQD2VKi1 : true (Map)
}

我尝试运行此命令

print(
user.data()['following'].toString(),
);

并收到输出

{HOIXdQkoerRBgYCGHFRylQD2VKi1:是,Dy2k9f2m7uXnnBBPHssPxJucCrK2: true}

但是我想知道指定的用户ID是否说HOIXdQkoerRBgYCGHFRylQD2VKi1的值为true或false。

我该怎么做?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

使用user.data()['following']访问的Firestore地图类型字段会返回Map<String, dynamic>,因此您可以将其像飞镖中的其他任何Map一样对待。如果要假定它包含bool个值:

Map<String, bool> following = user.data()['following'];
bool seen = following['the-user-id-to-check'];

答案 1 :(得分:0)

正如Doug所建议的,这里的问题在于该值可能是动态的。 您可以将其强制转换为bool变量:

bool see = false;
String userKey = "Dy2k9f2m7uXnnBBPHssPxJucCrK2"; // <-- User Key

print(
  see = user.data()['following'][userKey] as bool, // <-- cast as bool
);