我有一个问题,我的记录json可以为空。如何处理Avro模式中的空记录?给出的文档用于我想获取空记录的空属性。
答案 0 :(得分:0)
记录类型也是如此。您可以将类型与null合并。
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
import 'package:foci_dev/model/next_matches.dart';
import 'package:foci_dev/pages/new_match_page.dart';
import 'package:foci_dev/service/database_service.dart';
import 'package:foci_dev/ui/delete_card.dart';
import 'main_page.dart';
class DeletePage extends StatefulWidget {
@override
_DeletePageState createState() => _DeletePageState();
final DatabaseService databaseService;
DeletePage(this.databaseService);
}
class _DeletePageState extends State<DeletePage> {
DatabaseService _databaseService = DatabaseService(Firestore.instance);
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.grey[800],
appBar: AppBar(
backgroundColor: Colors.grey[900],
centerTitle: true,
title: const Text(
'Foci-admin',
style: TextStyle(color: Colors.white60),
),
leading: Padding(
padding: const EdgeInsets.all(8.0),
child: IconButton(
icon: Icon(
Icons.edit,
color: Colors.white60,
),
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => NewMatch(this._databaseService),
));
},
tooltip: 'Meccsek hozzáadása',
),
),
actions: <Widget>[
Padding(
padding: const EdgeInsets.all(8.0),
child: IconButton(
icon: Icon(
Icons.home,
color: Colors.white60,
),
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => MainPage(),
));
},
tooltip: 'Eredmény',
),
)
],
),
body: StreamBuilder(
stream: Firestore.instance
.collection("upcomings")
.orderBy('createdAt')
.snapshots(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
return snapshot.hasData
? Container(
color: Colors.grey[850],
child: ListView.builder(
itemCount: snapshot.data.documents.length,
itemBuilder: (BuildContext context, int index) {
DocumentSnapshot upcomings =
snapshot.data.documents[index];
UpcomingMatch upcomingMatch = UpcomingMatch(
upcomings["upcomingTeam1"],
upcomings["upcomingTeam2"]);
return DeleteCard(upcomingMatch,
snapshot.data.documents[index].documentId);
}),
)
: Center(
child: CircularProgressIndicator(),
);
},
),
);
}
}