我正在尝试根据其他用户是否看到过的文档列表进行排序。 我的数据库结构如下:
following (Document Field){
Dy2k9f2m7uXnnBBPHssPxJucCrK2 : true (Map)
HOIXdQkoerRBgYCGHFRylQD2VKi1 : true (Map)
}
我尝试运行此命令
print(
user.data()['following'].toString(),
);
并收到输出
{HOIXdQkoerRBgYCGHFRylQD2VKi1:是,Dy2k9f2m7uXnnBBPHssPxJucCrK2: true}
但是我想知道指定的用户ID是否说HOIXdQkoerRBgYCGHFRylQD2VKi1的值为true或false。
我该怎么做?任何帮助将不胜感激。
答案 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
);