【问题标题】:Flutter : how get data from Realtime Database (Json imported) from firebaseFlutter:如何从 Firebase 获取实时数据库(导入的 Json)中的数据
【发布时间】:2021-01-23 16:30:11
【问题描述】:

这是我第一次尝试将 firebase 与 Flutter 一起使用,我正在尝试从存储(从 json 导入)的实时数据库中获取数据,如下图所示:

我创建了这样的服务:

import 'dart:convert';
import 'package:http/http.dart' as http;

class FireBaseApi {
  Future getData() async {
    try {
      var url = 'https://xxxxxxxxxxxx.firebaseio.com/0.json';
      var response = await http.get(url);
      var data = jsonDecode(response.body);
      return data;
    } catch (e) {
      print(e);
      return null;
    }
  }
}

并像这样使用它:

return FutureBuilder(
  future: FireBaseApi().getData(),
  builder: (context, snapshot) {

现在我如何才能找到项目?

【问题讨论】:

    标签: flutter firebase-realtime-database stream


    【解决方案1】:

    首先你需要用Future设置你的方法

    class FireBaseApi {
      Future getData() async {
        ...
        return response;
      }
    }
    

    如果您使用StreamBuilder 调用此方法,则需要使用asStream() 调用此方法,如下所示

    return StreamBuilder(
     stream: FireBaseApi().getData().asStream(),
      builder: (context, snapshot) {
       ...
    }
    

    【讨论】:

    • 我收到此错误:type 'Future<int>' is not a subtype of type 'int'
    • @Sermedmayi 这将帮助您解决int 问题stackoverflow.com/questions/63766101/…
    • @Sermedmayi 如果我的回答解决了您的第一个问题,请点赞并将其标记为真的谢谢
    • 我会换个问题
    【解决方案2】:

    要获取数据,请使用以下方法:

    Future<DataSnapshot> getItems() {
        return FirebaseDatabase().reference().child("items").once();
    }
    

    如果您想创建一个小部件以响应式显示实时数据库中的项目,请使用以下代码:

        FirebaseAnimatedList(
            key: const Key("key"),
            query: FirebaseDatabase().reference().child("items"),
            itemBuilder:
                (_, DataSnapshot data, Animation<double> animation, int index) {
              // TODO update this to fit your own needs
              return Text(data.value.toString());
            },
          );
    

    【讨论】:

      猜你喜欢
      • 2021-03-04
      • 2021-04-08
      • 2021-03-16
      • 1970-01-01
      • 2020-08-13
      • 2019-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多