如何从 Firestore 中的文档获取字段值?

Dev*_*res 0 firebase flutter google-cloud-firestore

因此,我已经学会了如何在 firebase firestore 云中创建和更新文档,但是我在读取数据时遇到问题。附件是我查找“photourl”字段值的代码:

String photoy; 
Firestore.instance.collection('userdata').document('sepDGexTRuRkpx1WQYylDDmUI573')
.get().then((DocumentSnapshot ds){
          photoy=ds.data['photourl'];      
});

  setState(() {
              photourldisplay=photoy;
             });   
Run Code Online (Sandbox Code Playgroud)

然而,在运行我的程序时,photourldisplay 值似乎没有改变,并且在运行时保持为空。这意味着我检索此“photourl”字段的代码有问题。有人可以帮我检索 firebase 文档中的字段吗? Firebase 文档 Firebase 安全规则

Dou*_*son 5

photoy不包含您期望的值,因为 Firestore 查询是异步的。get() 立即返回,并在查询完成后一段时间调用回调。无法保证查询可能需要多长时间。如果您想将 的值传递photoy给其他内容,则必须仅在该回调中使用它,直到回调完成。

Firestore.instance.collection('userdata').document('sepDGexTRuRkpx1WQYylDDmUI573')
.get().then((DocumentSnapshot ds){
    photoy=ds.data['photourl'];      

    setState(() {
        photourldisplay=photoy;
    });   
});
Run Code Online (Sandbox Code Playgroud)