gpt4 book ai didi

firebase - 文档流 snapshot.hasData 返回 true 但没有数据,如何解决?

转载 作者:IT王子 更新时间:2023-10-29 07:23:14 26 4
gpt4 key购买 nike

我正在从 Firestore 流式传输文档快照,但是当数据库中没有任何内容时,snapshot.hasData 返回 true。这会导致我的代码在尝试从快照中检索值时失败。

我该如何解决这个问题?

我尝试打印出快照。数据刚刚得到一个 Documentsnapshot 实例。还考虑过向流提供初始数据,但我不知道如何提供空的 DocumentSnapshot 数据类型。

如果我手动将记录插入到 firestore,它工作正常。

StreamBuilder<DocumentSnapshot>(

stream: Firestore.instance.collection('UserDetails').document(widget.uid).snapshots(),
builder: (context, snapshot){

if(snapshot.hasError){
widget._err = snapshot.error;
} else if (snapshot.connectionState == ConnectionState.waiting){
widget._loadingUserInfo = true;
} else if (snapshot.hasData){
nameController.text = snapshot.data['name'];
ageController.text = snapshot.data['age'];
introController.text = snapshot.data['intro'];
widget._loadingUserInfo = false;
}
)

我正在尝试从 Firestore 获取用户值以填充其表单(如果存在值或用户存在)。

现在它只是失败了。

最佳答案

我发现虽然 print( snapshot.hasData ); 为真,print( snapshot.data.documents.isEmpty );print( snapshot.data.exists ); 也为 true..

因此,为了解决我的问题,我使用了:

if (!snapshot.hasData || snapshot.data.documents.isEmpty) //for QuerySnapshot

if (!snapshot.hasData || !snapshot.data.exists) //for DocumentSnapshot

关于firebase - 文档流 snapshot.hasData 返回 true 但没有数据,如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54460294/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com