StreamBuilder 仅在 flutter 热重载时显示数据

StreamBuilder showing data only on hot reload in flutter

我遇到了 Streambuilder 的问题。 我的应用程序的工作流程就像有一个项目列表,当我按下添加到收藏夹时它会将项目添加到 firestore。然后我使用流从 firestore 获取数据并使用流生成器将其显示在另一个屏幕上。 问题是当我热重载数据完美显示的应用程序时,流构建器是空的。 this is the part where I am calling stream method this is streambuilder 谢谢

尝试删除额外的变量 resultStream 并直接在 StreamBuilder 中使用函数 DatabaseManager.getUserCurrency(),如下所示:

StreamBuilder(
   stream: DatabaseManager.getUserCurrency(context),
   builder: (context, snapshot){...}
)

如果这不能解决问题,请检查您的 getUserCurrency() 函数是否有错误。这是从 Firestore 获取 Stream 的示例:

Stream<UserData> getUserData(String uid) {
  try {
    return userCollection
        .doc(uid)
        .snapshots()
        .map((event) => event?.data() != null ? UserData.fromMap(event.data()) : null);
  } catch (e) {
    print(e);
    return null;
  }
}

此外,您通常不必等待 Stream,这可能会导致您的情况出现问题,因为您正在 initState.

中调用异步函数