如何读取firebase中的单个文件



所以我想读取用户的角色,我知道如何读取集合和文档,但是如何从文档中读取字段呢?

这就是我一直在努力的,

@override
void readRole(){
final path = APIPath.role(uid);
final reference = FirebaseFirestore.instance.collection(path);
final snapshots = reference.snapshots();
snapshots.listen((snapshot) { snapshot.docs.forEach((snapshot) => print(snapshot.data()));
});
}
static String role (String uid) => 'users/$uid';

Firestore doc.data()的类型为Map<String,>,即Json。所以你可以尝试这样做:

final Map<String, dynamic> data = snapshot.data();
final String role = data['role'];

但是最好的方法是创建一个用户实体并使用Json_serializable: https://pub.dev/packages/json_serializable并将firestore数据对象转换为用户实体;

但是通过检查你的role()函数,我不确定是否正确理解它,用户的角色只是字符串'users/$uid' ?

最新更新