这听起来可能很愚蠢,但我很困惑。你应该如何将数据保存到Firestore?
在添加和检索之前,是否应该将其转换为JSON或从JSON转换而来?或者是否应该将其保存为Map,例如:
({'sugars': sugars, 'name': name, 'strength': strength})
实时数据库是否有所不同?
我看到人们在他们的模型类中添加了以下内容:
final FieldModel field;
final int number;
final String id;
TransactionModel({
required this.field,
required this.number,
this.id = '',
});
/// this conversion to JSON
factory TransactionModel.fromJson(String id, Map<String, dynamic> json) =>
TransactionModel(
field: FieldModel.fromJson(json['field']['id'], json['field']),
id: id,
number: json['number'],
);
我的问题是:为什么他们把它转换成JSON?它总是被要求的吗?这是用于Firestore还是实时数据库?
2条答案
按热度按时间8iwquhpp1#
您可以在Cloud Firestore here中找到有关获取和存储数据的所有详细信息。
Firestore将数据存储在“文档”中,而“文档”又包含在“集合”中。文档也可以包含嵌套集合。例如,我们的每个用户都有自己的“文档”存储在“Users”集合中。集合方法允许我们在代码中引用集合。
要向Firestore添加条目,您需要将
Map<String, dynamic>
传递给集合的add()
函数或文档的set()
函数。您可以这样发送数据。
或者,您也可以执行以下操作:
其中,
toJson()
为若要读取集合或文档一次,请调用Query.get或DocumentReference.get方法。
至于回答你的问题:
我的问题是:为什么他们把它转换成json?它总是被要求的吗?这是用于Firestore还是实时数据库?
JSON(JavaScript Object Notation,JavaScript对象表示法)是一种用于数据交换的轻量级格式。它基于JavaScript语言的一个子集(对象是内置JavaScript的方式)。正如MDN中所述,有些JavaScript不是JSON,有些JSON也不是JavaScript。
在“旧”时代,Web服务使用XML作为其传输数据的主要数据格式,但自从JSON出现(JSON格式由道格拉斯Crockford在RFC 4627中指定)以来,它一直是首选格式,因为它更轻量级
您可以参考this答案了解有关JSON的更多信息。
总之,JSON或Maps被用于数据传输,因为它以一种结构良好的方式(键-值对)提供数据。与其他数据传输格式(如CSV)相比,它更容易阅读。
bgibtngc2#
将数据写入Firestore有几种方法:
若要建立或覆写单一文件,请使用set()方法:
如果文档不存在,则将创建该文档。如果文档存在,则其内容将被新提供的数据覆盖,除非您指定数据应合并到现有文档中,如下所示:
如果不确定文档是否存在,请传递选项以将新数据与任何现有文档合并,以避免覆盖整个文档。对于包含Map的文档,请注意,指定包含空Map的字段的集合将覆盖目标文档的Map字段。
如需了解更多信息,请浏览此
JSON是JavaScript Object Notation的缩写,是一种开放的标准格式,它是轻量级的,基于文本的,明确地为人类可读的数据交换而设计。它是一种与语言无关的数据格式。它支持几乎所有类型的语言、框架和库。
JSON是一个在网络上交换数据的开放标准。它支持对象和数组等数据结构。因此,从JSON中写入和读取数据非常容易。
在JSON中,数据以键-值对的形式表示,大括号中包含对象,每个名称后面跟一个冒号。逗号用于分隔键-值对。方括号用于包含数组,其中每个值用逗号分隔。
你可以通过这个链接JSON
最后,正如@eNeM所说,JSON或Maps被用于数据传输,因为它以一种结构良好的方式(键-值对)提供数据。