如何在我的应用程序中等待ScopedModel数据异步?

时间:2019-02-24 22:11:32

标签: firebase-realtime-database flutter firebase-authentication google-cloud-firestore flutter-layout

我通过ScopedModel为当前登录用户的所有用户数据创建了一个UserModel。数据从Firebase / Firestore异步(未来)加载到UserModel模型中。现在,我想在我的应用程序中的任何位置访问变量。因此,例如,我的应用程序中有另一个Firestore调用,它需要userId。现在,当我尝试加载变量时,它们是Future的Instance或为null(我必须等待它们)。我知道我可以在每个initState中等待它们。但是我认为这是一个错误的解决方案。知道该怎么办吗?

示例:这里我需要userId

<div id="sliders-container">
  <div class="slider-container">
    <p class="slider-label">foo</p>
    <input class="slider" min="0" max="100" type="range">
    <p class="slider-value">10</p>
  </div>
    <div class="slider-container">
    <p class="slider-label">foo-bar-baz</p>
    <input class="slider" min="0" max="100" type="range">
    <p class="slider-value">0</p>
  </div>
    <div class="slider-container">
    <p class="slider-label">quuuuuuuuuuuuux</p>
    <input class="slider" min="0" max="100" type="range">
    <p class="slider-value">0.0000001</p>
  </div>
</div>

我将模型数据加载到应用程序树的开头

FutureBuilder(future: Firestore.instance
                       .collection('users')
                       .document(model.userId.toString())
                       .get(), etc...

现在,UserModel如下所示。

void main() async{
var model = new UserModel();
 await model.loadData();    
  runApp(new ChatHere());
}

0 个答案:

没有答案