我已經用firebase做了一個待辦事項清單。但是當我點擊創建一個新的任務時,我在我的頁面上看不到任何東西,但在 firebase 中它確實顯示了字串。
我怎樣才能解決這個問題
(這是在顫抖)
logcat:2022-10-19 15:24:50.758 23369-23584 flutter com.example.voorbeeld 我創建了一個
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
class video_info extends StatefulWidget {
@override
_video_infoState createState() => _video_infoState();
}
class _video_infoState extends State<video_info> {
String todoTitle = "";
createTodos() {
DocumentReference documentReference =
FirebaseFirestore.instance.collection("MyTodos").doc(todoTitle);
//Map
Map<String, String> todos = {"todoTitle": todoTitle};
documentReference.set(todos).whenComplete(() {
print("$todoTitle created");
});
}
deleteTodos(item) {
DocumentReference documentReference =
FirebaseFirestore.instance.collection("MyTodos").doc(item);
documentReference.delete().whenComplete(() {
print("$item deleted");
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("mytodos"),
),
floatingActionButton: FloatingActionButton(
onPressed: () {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8)),
title: Text("Add Todolist"),
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("Mytodos").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(),
);
}
}),
);
}}
也有人知道指向教程的鏈接,他們解釋了如何將資料庫鏈接到用戶登錄名。
uj5u.com熱心網友回復:
您正在使用另一個集合。
您正在將待辦事項添加到此集合中:
FirebaseFirestore.instance.collection("MyTodos")
但是在您的 StreamBuilder 中,您使用集合“Mytodos”:
stream: FirebaseFirestore.instance.collection("Mytodos").snapshots(),
uj5u.com熱心網友回復:
嘗試在狀態類上創建流變數
late final myStream = FirebaseFirestore.instance.collection("MyTodos").snapshots();
@override
Widget build(BuildContext context) {
....
body: StreamBuilder(
stream: myStream
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/518254.html
