flutter - “where”参数中带有变量的 Firebase 实例
问题描述
从flutter编程开始,我尝试创建一个返回firebase数据的简单视图
我在字符串“data”中的 2 个屏幕之间传递了一个值,但是当我尝试将其添加到我的 firebase 查询时,我收到以下消息:
无法在初始化程序中访问实例成员“数据”。尝试用不同的表达式替换对实例成员的引用dart(implicit_this_reference_in_initializer)
当我用引号之间的值替换它时,我没有收到此错误消息:
在职的 :
.where('Description', isEqualTo: 'ProductABC')
不工作:
.where('Description', isEqualTo: data)
你能帮助我吗 ?
请在代码行下方找到
class Itemscreen extends StatefulWidget {
String data;
Itemscreen({this.data});
@override
_ItemscreenState createState() => _ItemscreenState(data);
}
class _ItemscreenState extends State<Itemscreen> {
String data;
_ItemscreenState(this.data);
FirebaseFirestore firestore = FirebaseFirestore.instance;
final Stream<QuerySnapshot> _itemlist = FirebaseFirestore.instance
.collection('ItemList')
.where('Description', isEqualTo: data)
.snapshots();
谢谢你的帮助 :)
解决方案
正如错误消息所说,您不能data
在对象的初始化块中使用(或任何字段)。
您可能希望在构造函数/初始化程序中创建它,如下所示:
class _ItemscreenState extends State<Itemscreen> {
String data;
final FirebaseFirestore firestore
final Stream<QuerySnapshot> itemlist
_ItemscreenState(this.data):
firestore = FirebaseFirestore.instance,
_itemlist = FirebaseFirestore.instance
.collection('ItemList')
.where('Description', isEqualTo: data)
.snapshots();
推荐阅读
- terraform - 变量中的 Terraform 变量
- windows - Windows 本机 OpenSSH 和 git 无法与服务器协商密码
- r - 如何按节点垂直绘制data.tree
- sql-server - 无法使用 Python 连接到我的本地计算机上的 SQL Server 数据库
- regex - 如何使用正则表达式查找具有特定起始字符串的所有匹配项?
- c - 在适当的位置添加一个节点(列表将按升序排列)
- typescript - 酶打字稿 - 无法设置在 Function.assign 中只有一个 getter 的 [object Event] 的属性目标
- javascript - 如何使用 JSDocs 描述具有默认值的可选对象参数
- types - Sagemath:为什么不等式没有转换为布尔值?
- python - CITE-Seq-Count 修剪 Fastq 文件/运行逗号分隔列表