使用 Flutter 在 Firestore 中保存多行文本
Saving multiple lines of text in Firestore with Flutter
我正在为我的应用制作笔记页面,它能够编辑笔记标题和笔记本身。
在使用 Flutter 和 Firestore 时,我 运行 遇到了这个问题:
我找不到任何方法来创建类似支持多行文本的 TextField,而且我不知道如何将这些数据存储在 Firestore 中。
编辑笔记页面代码,目前只能从Firestore读取:
class EditNotePage extends StatefulWidget {
final DocumentSnapshot document;
EditNotePage({
Key key,
this.document
}) : super(key: key);
@override
_EditNotePageState createState() => _EditNotePageState(document);
}
class _EditNotePageState extends State<EditNotePage> {
final DocumentSnapshot document;
_EditNotePageState(this.document);
@override
Widget build(BuildContext context) {
var textFieldTitleController = new TextEditingController(
text: document['title']
);
var textFieldNoteController = new TextEditingController(
text: document['note']
);
return Scaffold(
appBar: AppBar(
title: Text('Edit note'),
),
body: Column(
children: <Widget>[
TextField(
controller: textFieldTitleController,
decoration: InputDecoration(
labelText: 'Title'
),
),
TextField(
controller: textFieldNoteController,
decoration: InputDecoration(
labelText: 'Note'
),
),
],
),
);
}
}
Firestore 结构:
users > "userUID" > notes > "note" > title (as string) and note (as
string)
这在制作文本编辑应用程序或保存用户编写的长文本时尤为重要。
有解决这个问题的想法吗?
终于找到解决办法了,Flutter 的文本字段有一个 maxLines 参数,给它输入 null 或你想要的行数,它将无缝地存储在 Firebase 中,没有任何格式问题。
我正在为我的应用制作笔记页面,它能够编辑笔记标题和笔记本身。
在使用 Flutter 和 Firestore 时,我 运行 遇到了这个问题:
我找不到任何方法来创建类似支持多行文本的 TextField,而且我不知道如何将这些数据存储在 Firestore 中。
编辑笔记页面代码,目前只能从Firestore读取:
class EditNotePage extends StatefulWidget {
final DocumentSnapshot document;
EditNotePage({
Key key,
this.document
}) : super(key: key);
@override
_EditNotePageState createState() => _EditNotePageState(document);
}
class _EditNotePageState extends State<EditNotePage> {
final DocumentSnapshot document;
_EditNotePageState(this.document);
@override
Widget build(BuildContext context) {
var textFieldTitleController = new TextEditingController(
text: document['title']
);
var textFieldNoteController = new TextEditingController(
text: document['note']
);
return Scaffold(
appBar: AppBar(
title: Text('Edit note'),
),
body: Column(
children: <Widget>[
TextField(
controller: textFieldTitleController,
decoration: InputDecoration(
labelText: 'Title'
),
),
TextField(
controller: textFieldNoteController,
decoration: InputDecoration(
labelText: 'Note'
),
),
],
),
);
}
}
Firestore 结构:
users > "userUID" > notes > "note" > title (as string) and note (as string)
这在制作文本编辑应用程序或保存用户编写的长文本时尤为重要。
有解决这个问题的想法吗?
终于找到解决办法了,Flutter 的文本字段有一个 maxLines 参数,给它输入 null 或你想要的行数,它将无缝地存储在 Firebase 中,没有任何格式问题。