【发布时间】:2022-11-04 02:50:09
【问题描述】:
我正在尝试从 firebase 获取用户评分并从数据中创建一个类。
这是数据到达时我需要创建的类::
@immutable
class UserRating {
final String documentId;
final String ratingJobId;
final String ratingUserIdGivingRating;
final String ratingUserIdGettingRating;
final int? ratingUser;
final String? ratingComment;
const UserRating(
{required this.documentId,
required this.ratingJobId,
required this.ratingUserIdGivingRating,
required this.ratingUserIdGettingRating,
this.ratingUser,
this.ratingComment});
// acts as constructor
UserRating.fromSnapshot(QueryDocumentSnapshot<Map<String, dynamic>> snapshot)
: documentId = snapshot.id,
ratingJobId = snapshot.data()[ratingJobIdColumn],
ratingUserIdGivingRating =
snapshot.data()[ratingUserIdGivingRatingColumn],
ratingUserIdGettingRating =
snapshot.data()[ratingUserIdGettingRatingColumn],
ratingUser = snapshot.data()[ratingUserColumn],
ratingComment = snapshot.data()[ratingCommentColumn];
}
这是从firebase发出请求的代码(这是问题所在,因为我很难处理快照)
我遇到的另一个问题是数据可能还不存在,所以如果没有 userRating,我需要返回一些东西....也不知道如何处理。任何帮助都会很棒!
final userRating = FirebaseFirestore.instance.collection('user rating');
Future getUserRatingPerJob({
required String ratingJobId,
required String ratingUserIdGivingRating,
}) async {
await userRating
.where(
ratingJobIdColumn,
isEqualTo: ratingJobId,
)
.where(
ratingUserIdGivingRatingColumn,
isEqualTo: ratingUserIdGivingRating,
); // this is where I need to do something to return UserRating object
}
【问题讨论】:
标签: flutter firebase dart future snapshot