Dav*_*bar 6 jsonserializer firebase flutter google-cloud-firestore
我正在尝试将 DocumentSnap 从 Firebase 映射到 Flutter 中的 Json 类。我可以确认我正在从文档中获取数据,但我无法将收集的数据传递给我的 Json 对象。我已附上代码和错误消息。
用于从 Firebase DatabaseService.dart 获取文档的类
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:oast_app/widgets/auth_class.dart';
class FireTest {
Future<List<UserCheck>> streamUser(FirebaseUser user) async {
DocumentSnapshot querySnapshot =
await Firestore.instance.collection('users').document(user.uid).get();
if (querySnapshot.exists) {
print('success');
print(querySnapshot.data['fname']);
print(querySnapshot.data['lname']);
querySnapshot.data.map<String, dynamic>((json) => UserCheck.fromJson(json)); **this is whats erroring**
}
return [];
}
}
Run Code Online (Sandbox Code Playgroud)
Json 对象类
import 'package:flutter/material.dart';
import 'package:json_annotation/json_annotation.dart';
part 'auth_class.g.dart';
@JsonSerializable(nullable: false)
class UserCheck extends ChangeNotifier {
final String uid;
final String fName;
final String lName;
final String regEmail;
final String org;
UserCheck({
this.uid,
this.fName,
this.lName,
this.regEmail,
this.org,
});
factory UserCheck.fromJson(Map<String, dynamic> json) =>
_$UserCheckFromJson(json);
Map<String, dynamic> toJson() => _$UserCheckToJson(this);
}
Run Code Online (Sandbox Code Playgroud)
错误信息
编译器消息:lib/widgets/database_service.dart:17:76:错误:参数类型“String”无法分配给参数类型“Map <String,dynamic>”。
火力基地结构
^ collection('users').document('user.uid')这是我试图获取的文档
您在地图上设置的目标类型必须是您想要作为地图结果的类型。
所以应该是
querySnapshot.data.map((json) => UserCheck.fromJson(json)).toList();
| 归档时间: |
|
| 查看次数: |
19540 次 |
| 最近记录: |