Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 结构化Firestore数据以实现高效读取_Firebase_Google Cloud Firestore - Fatal编程技术网

Firebase 结构化Firestore数据以实现高效读取

Firebase 结构化Firestore数据以实现高效读取,firebase,google-cloud-firestore,Firebase,Google Cloud Firestore,假设我有一个显示餐馆列表的应用程序&要显示1000家餐馆 我的第一印象是创建一个餐厅的集合,每个餐厅都是这个集合中的文档 上述方法的问题是,对于每个用户云Firestore,将注册1000次读取 我的问题是,是否有更好的方法来存储餐厅,以减少阅读次数 我的第一印象是创建一个餐厅集合,每个餐厅都是这个集合中的一个文档 是的,这是正确的方法 上述方法的问题是firestore将为每个用户注册1000次读取 只有在一次读取所有文档的情况下,您才会被收取1000次读取操作的费用。但这不是正确的方法,你需

假设我有一个显示餐馆列表的应用程序&要显示1000家餐馆

我的第一印象是创建一个餐厅的
集合
,每个餐厅都是这个
集合中的
文档

上述方法的问题是,对于每个用户云Firestore,将注册1000次
读取

我的问题是,是否有更好的方法来存储餐厅,以减少阅读次数

我的第一印象是创建一个餐厅集合,每个餐厅都是这个集合中的一个文档

是的,这是正确的方法

上述方法的问题是firestore将为每个用户注册1000次读取

只有在一次读取所有文档的情况下,您才会被收取1000次读取操作的费用。但这不是正确的方法,你需要限制你得到的数据。关于如何实现这一点,请查看有关的官方文件

另一种最简单的方法是以较小的数据块加载数据。这种做法称为分页,可以非常简单地在CloudFireStore中使用
startAt()
startAfter()
方法

对于Android,是一种推荐的方法,通过将查询游标与
limit()
方法相结合,可以对查询进行分页。为了更好地理解,我还建议您看看这个

我的问题是,是否有更好的方法来存储餐厅,以减少阅读次数

要回答您的问题,问题不在于存储数据的方式,而在于读取数据的方式

我的第一印象是创建一个餐厅集合,每个餐厅都是这个集合中的一个文档

是的,这是正确的方法

上述方法的问题是firestore将为每个用户注册1000次读取

只有在一次读取所有文档的情况下,您才会被收取1000次读取操作的费用。但这不是正确的方法,你需要限制你得到的数据。关于如何实现这一点,请查看有关的官方文件

另一种最简单的方法是以较小的数据块加载数据。这种做法称为分页,可以非常简单地在CloudFireStore中使用
startAt()
startAfter()
方法

对于Android,是一种推荐的方法,通过将查询游标与
limit()
方法相结合,可以对查询进行分页。为了更好地理解,我还建议您看看这个

我的问题是,是否有更好的方法来存储餐厅,以减少阅读次数

要回答您的问题,问题不在于存储数据的方式,而在于读取数据的方式