从 Firebase 获取原始 JSON 到 Flutter

Posted

技术标签:

【中文标题】从 Firebase 获取原始 JSON 到 Flutter【英文标题】:Get raw JSON from Firebase to Flutter 【发布时间】:2021-01-19 18:25:15 【问题描述】:

我正在尝试从 firebase 数据库中获取原始 JSON,如下所示:

 List mydata;

  Future<String> getData() async 
    var response = await http.get(
        Uri.encodeFull("https://opouygttgc.firebaseio.com/thing.json"),
      headers: 
          "Accept": "application.json"
      
    );

    mydata = json.decode(response.body.toString());
    print(mydata);

我收到了这个输出:

[[Derecho Penal, Cuando un hecho delictivo se le puede atribuir o reprochar a su autor, decimos que éste es:, Si el culpable da comienzo a la ejecución del hecho delictivo practicando parte de los actos que objetivamente deberían producir el resultado , y sin embargo, est no se producer por causas, independientes de la voluntad del autor, nos encontramos:, La negativa a cumplir una orden se castigará:, Comete delito de infidelidad en la custodia de documentos públicos

我需要这个输出:

[0: Derecho Penal, 1: Cuando un hecho delictivo se le puede atribuir o reprochar a su autor, decimos que éste es:, 2: Si el culpable da comienzo a la ejecución del hecho delictivo practicando parte de los actos que objetivamente deberían producir el resultado, y sin embargo, éste no se produce por causas, independientes de la voluntad del autor, nos encontramos:, 3: La negativa a cumplir una orden se castigará:, 4: Comete delito de infidelidad en la custodia公用文件

在使用 firebase 之前,我从磁盘加载 json 没有问题,现在使用数据库响应获得相同的输出格式让我很困惑。

【问题讨论】:

请编辑问题以显示您在此处查询的数据库中的数据结构,而不仅仅是查询结果。 【参考方案1】:

当您通过 REST API 读取/写入类似数组的 JSON 结构时,Firebase 实时数据库会自动将它们转换为实际数组。没有办法改变这种行为。

如果您不希望 Firebase 将数据转换为数组,请确保数据看起来不像数组。例如,我通常为每个键添加一个简短的字母数字前缀:

[

    "key_0": "Derecho Penal",
    "key_1": "Cuando un hecho delictivo se le puede atribuir o reprochar a su autor, decimos que éste es:",  
,
...

【讨论】:

以上是关于从 Firebase 获取原始 JSON 到 Flutter的主要内容,如果未能解决你的问题,请参考以下文章

Firebase Documentsnapshot 映射到 Flutter 中的 Json 对象

从android中的firebase函数接收json数据给出空值

从 Firebase 数据快照获取 JSON 键值

Flutter:如何从 Firebase 通知负载中获取 Json 数据

将原始“事件”数据从 Firebase 导出到大查询?

在ios中上传后如何从firebase获取缩略图?