我在我的顫振應用程式中得到一個 UnimplementedError 并且我沒有看到任何其他真正幫助我解決我的問題的問題,這就是我問的原因。
我得到一個 UnimplementedError 但我不知道如何在沒有其他錯誤的情況下正確修復它。像“uid 未定義”
所以任何人都可以幫助我解決這個錯誤并使應用程式無錯誤
非常感謝您 :)
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:hetmaantje/utils1/colors.dart';
class todolist extends StatefulWidget {
@override
_todolistState createState() => _todolistState();
}
class _todolistState extends State<todolist> {
String todoTitle = "";
createTodos() {
@override
final FirebaseAuth auth = FirebaseAuth.instance;
final User? user = auth.currentUser;
final uid = user?.uid;
DocumentReference documentReference =
FirebaseFirestore.instance.collection(uid!).doc(todoTitle);
//Map
Map<String, String> todos = {"todoTitle": todoTitle};
documentReference.set(todos).whenComplete(() {
print("$todoTitle created");
});
}
deleteTodos(item) {
@override
final User? user = auth.currentUser;
final uid = user?.uid;
DocumentReference documentReference =
FirebaseFirestore.instance.collection(uid!).doc(item);
documentReference.delete().whenComplete(() {
print("$item deleted");
});
}
@override
final FirebaseAuth auth = FirebaseAuth.instance;
@override
void inputData() {
final User? user = auth.currentUser;
final uid = user?.uid;
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("To-do lijst"),
),
floatingActionButton: FloatingActionButton(
backgroundColor: hexStringToColor("fe98a8"),
onPressed: () {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
backgroundColor: hexStringToColor("fe98a8"),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8)),
title: Text("Voeg een nieuwe taak toe"),
content: TextField(
onChanged: (String value) {
todoTitle = value;
},
),
actions: <Widget>[
TextButton(
onPressed:() {
createTodos();
Navigator.of(context).pop();
},
child: Text("Add"))
],
);
});
},
child: Icon(
Icons.add,
color: Colors.white,
),
),
body: StreamBuilder(
stream: FirebaseFirestore.instance.collection(uid!).snapshots(),
builder: (context, snapshots) {
if (snapshots.hasData) {
return ListView.builder(
shrinkWrap: true,
itemCount: snapshots.data?.docs.length,
itemBuilder: (context, index) {
DocumentSnapshot documentSnapshot =
snapshots.data!.docs[index];
return Dismissible(
onDismissed: (direction) {
deleteTodos(documentSnapshot["todoTitle"]);
},
key: Key(documentSnapshot["todoTitle"]),
child: Card(
elevation: 4,
margin: EdgeInsets.all(8),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8)),
child: ListTile(
title: Text(documentSnapshot["todoTitle"]),
trailing: IconButton(
icon: Icon(
Icons.delete,
color: Colors.red,
),
onPressed: () {
deleteTodos(documentSnapshot["todoTitle"]);
}),
),
));
});
} else {
return Align(
alignment: FractionalOffset.bottomCenter,
child: CircularProgressIndicator(),
);
}
}),
);
}}
@override
Widget build(BuildContext context) {
// TODO: implement build
throw UnimplementedError();
}
}
uj5u.com熱心網友回復:
您的代碼存在格式問題。您需要在構建方法上添加覆寫并洗掉底部構建方法并正確關閉該功能。
class todolist extends StatefulWidget {
@override
_todolistState createState() => _todolistState();
}
class _todolistState extends State<todolist> {
String todoTitle = "";
createTodos() {
final FirebaseAuth auth = FirebaseAuth.instance;
final User? user = auth.currentUser;
final uid = user?.uid;
DocumentReference documentReference =
FirebaseFirestore.instance.collection(uid!).doc(todoTitle);
//Map
Map<String, String> todos = {"todoTitle": todoTitle};
documentReference.set(todos).whenComplete(() {
print("$todoTitle created");
});
}
deleteTodos(item) {
@override
final User? user = auth.currentUser;
final uid = user?.uid;
DocumentReference documentReference =
FirebaseFirestore.instance.collection(uid!).doc(item);
documentReference.delete().whenComplete(() {
print("$item deleted");
});
}
final FirebaseAuth auth = FirebaseAuth.instance;
late final User? user = auth.currentUser;
late final uid = user?.uid;
late final stream = FirebaseFirestore.instance.collection(uid!).snapshots();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("To-do lijst"),
),
floatingActionButton: FloatingActionButton(
backgroundColor: hexStringToColor("fe98a8"),
onPressed: () {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
backgroundColor: hexStringToColor("fe98a8"),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8)),
title: Text("Voeg een nieuwe taak toe"),
content: TextField(
onChanged: (String value) {
todoTitle = value;
},
),
actions: <Widget>[
TextButton(
onPressed: () {
createTodos();
Navigator.of(context).pop();
},
child: Text("Add"))
],
);
});
},
child: Icon(
Icons.add,
color: Colors.white,
),
),
body: StreamBuilder(
stream: stream,
builder: (context, snapshots) {
if (snapshots.hasData) {
return ListView.builder(
shrinkWrap: true,
itemCount: snapshots.data?.docs.length,
itemBuilder: (context, index) {
DocumentSnapshot documentSnapshot =
snapshots.data!.docs[index];
return Dismissible(
onDismissed: (direction) {
deleteTodos(documentSnapshot["todoTitle"]);
},
key: Key(documentSnapshot["todoTitle"]),
child: Card(
elevation: 4,
margin: EdgeInsets.all(8),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8)),
child: ListTile(
title: Text(documentSnapshot["todoTitle"]),
trailing: IconButton(
icon: Icon(
Icons.delete,
color: Colors.red,
),
onPressed: () {
deleteTodos(documentSnapshot["todoTitle"]);
}),
),
));
});
} else {
return Align(
alignment: FractionalOffset.bottomCenter,
child: CircularProgressIndicator(),
);
}
}),
);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/518678.html
標籤:Google Cloud Collective 扑火力基地镖
