我正在尝试从 Firestore 导入玩家数据...这是我第一次尝试在线数据库
我正在学习本教程:https://www.raywenderlich.com/7426050-firebase-tutorial-for-flutter-getting-started
我收到标题中的错误。有人可以帮我吗?
它接缝是导致问题的 snap.data。我的研究表明,snapshot.data 是一个函数,但我不明白如何解决我的问题。
这里回答了一个类似的问题:
但是这个问题使用 MAP,而我的教程使用 JSON。它们是一样的吗?
如果它们是同一回事,请为我的天真道歉。
import 'package:cloud_firestore/cloud_firestore.dart';
import 'person.dart';
class Player extends Person {
final int _shirtNumber;
final DateTime _dateOfBirth;
DocumentReference _reference;
Player(String _firstName, String _secondName, this._shirtNumber,
this._dateOfBirth, this._reference)
: super(_firstName, _secondName);
int get shirtNumber => _shirtNumber;
DateTime get dateOfBirth => _dateOfBirth;
int get ageInDays => DateTime.now().difference(_dateOfBirth).inDays;
int get age => ageInDays ~/ 365.25;
DocumentReference get reference => _reference;
factory Player.fromSnapshot(DocumentSnapshot snapshot) {
Player newPlayer = Player.fromJson(snapshot.data);
newPlayer._reference = snapshot.reference;
return newPlayer;
}
factory Player.fromJson(Map<dynamic, dynamic> json) => _playerFromJson(json);
Map<String, dynamic> toJson() => _playerToJson(this);
}
//Helpers
Player _playerFromJson(Map<dynamic, dynamic> json) {
return Player(
json['firstName'] as String,
json['secondName'] as String,
json['shirtNumber'] as int,
json['dateOfBirth'] as DateTime,
json['documentID'] as DocumentReference);
}
Map<String, dynamic> _playerToJson(Player instance) => <String, dynamic>{
'firstName': instance.firstName,
'secondName': instance.secondName,
'shirtNumber': instance.shirtNumber,
'dateOfBirth': instance.dateOfBirth,
};