firebase - 如何在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, dynamic> ,表示 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' ?
推荐阅读
- python - Python - 在标签中加载图像
- php - Laravel 修补文本建议或通过 Tab 键自动完成
- reactjs - 如何处理组件渲染后出现axios响应的情况?
- javascript - 如何使服务器/srr 仅呈现为 vue 组件?
- java - 将记录删除到表中并获取删除的行数
- java - 无法通过在方法 FindById() 中使用主键来获取单个对象
- c - 使用 strcpy 和相等字符串的地址有什么区别?
- jquery - ASP NET MVC CORE - 每 X 秒刷新一次局部视图
- python - 按下 CTRL+C 时如何防止 ^C 显示
- javascript - 尝试使用 JQuery 为框的颜色设置动画