Pan*_*wer 1 stream firebase flutter google-cloud-firestore
我正在从 Firestore 传输文档快照,但当数据库中没有任何内容时,snapshot.hasData 返回 true。当尝试从快照中检索值时,这会导致我的代码失败。
我该如何解决?
我尝试打印 snapshot.Data 刚刚得到一个 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;
}
)
Run Code Online (Sandbox Code Playgroud)
我正在尝试从 Firestore 获取用户值以填充其表单(如果存在值或用户存在)。
现在它失败了。
小智 6
我发现虽然print( snapshot.hasData );是真的,
print( snapshot.data.documents.isEmpty );而且print( snapshot.data.exists );也是真的..
因此,为了解决我的问题,我使用了:
if (!snapshot.hasData || snapshot.data.documents.isEmpty) //for QuerySnapshot
Run Code Online (Sandbox Code Playgroud)
或者
if (!snapshot.hasData || !snapshot.data.exists) //for DocumentSnapshot
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5081 次 |
| 最近记录: |