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,说: 和实时数据库一样,CloudFireStore使用数据同步来更新任何连接设备上的数据 我试图弄清楚这个数据同步包括哪些内容 说: 启用持久性后,Cloud Firestore将缓存从后端接收的每个文档,以便脱机访问 云Firestore是否会在后端发生更改时更新该缓存? 例如,如果缓存中有某个文档,该文档 在后端或服务器中更改文档时自动更新 b每当我使用该文档进行查询时,我碰巧处于联机状态 当时呢? 更新 我要重述我的最后一段,因为它被别人误解了 至少一个人 想象一下以下场景: 我有一部智

说:

和实时数据库一样,CloudFireStore使用数据同步来更新任何连接设备上的数据

我试图弄清楚这个数据同步包括哪些内容

说:

启用持久性后,Cloud Firestore将缓存从后端接收的每个文档,以便脱机访问

云Firestore是否会在后端发生更改时更新该缓存? 例如,如果缓存中有某个文档,该文档 在后端或服务器中更改文档时自动更新 b每当我使用该文档进行查询时,我碰巧处于联机状态 当时呢?

更新

我要重述我的最后一段,因为它被别人误解了 至少一个人

想象一下以下场景:

我有一部智能手机。为了让事情变得简单,假设智能手机 他一直在线。 此智能手机上安装了一个包含Firestore SDK的移动应用程序。 应用程序已启用Firestore缓存。 缓存包含,比如说,1000个文档。 现在我的问题是:如果这些文档中有一个在云中更改,而不是在 对于智能手机,Firestore SDK在什么情况下会更新 缓存中的文档?它会很快自动更新文档吗 在云上更改后,或b在下次
移动应用程序使用文档进行查询?

我认为突出显示的两段都是简单明了的解释,并回答您的问题:

Firestore是否会在后端发生更改时更新该缓存

是的,如果您处于脱机状态,并且某些文档已更改,那么一旦您重新联机,您将获得所有更改的文档,反之亦然,如果您在缓存中本地更改某些文档,则当您重新联机时,所有更改的文档都将发送到Firebase服务器

如果您有一个返回10个文档的查询,这意味着您与10个文档同步,这基本上意味着如果这10个文档中的任何一个发生了更改,那么您的侦听器只会因为该更改而被触发

在后端更改文档时,该文档是否会自动更新

是的,首先在缓存中,一旦恢复联机,也在Firebase服务器上

每当我做一个使用该文档的查询时,我碰巧在网上

当您联机且文档发生更改时,系统会实时通知您

编辑:

如果其中一个文档在云中而不是在智能手机上更改,Firestore SDK在什么情况下会更新缓存中的文档?它会在云上更改后很快自动更新文档,还是在下次移动应用程序执行使用文档的查询时更新文档

只要您与这些文档同步,它就会在文档更改的第二刻发生。我的意思是,通过同步,您在代码中使用get调用来获取这些文档,或者如果您正在实时侦听文档更改。只需在不使用侦听器的情况下创建对文档或查询的引用,就不会以任何方式通知您

下次移动应用程序执行使用文档的查询时是否更新文档

不正确,因为您处于联机状态并且与文档同步,侦听器会立即触发

编辑2:


简而言之,每次文档发生更改时都会调用侦听器。下次应用程序执行查询时,语句不正确,因为当您创建查询并附加侦听器时,您始终与数据库同步,并且当文档发生更改时,会立即通知您。这不像是,文档在数据库中链接,当我在某个时间点查询时,我会得到更改,不,更改发生时总是会通知您。这就是实时数据库的美妙之处,在发生更改时会得到通知:

在我看来,突出显示的两段都是直截了当的解释,并回答您的问题:

Firestore是否会在后端发生更改时更新该缓存

是的,如果您处于脱机状态,并且某些文档已更改,那么一旦您重新联机,您将获得所有更改的文档,反之亦然,如果您在缓存中本地更改某些文档,则当您重新联机时,所有更改的文档都将发送到Firebase服务器

如果您有一个返回10个文档的查询,这意味着您与10个文档同步,这基本上意味着如果这10个文档中的任何一个发生了更改,那么您的侦听器只会因为该更改而被触发

在后端更改文档时,该文档是否会自动更新

是的,首先在缓存中,一旦恢复联机,也在Firebase服务器上

每当我做一个使用该文档的查询时,我碰巧在网上

当您联机且文档发生更改时,系统会实时通知您

编辑:

如果其中一个文档在云中而不是在智能手机上更改,Firestore SDK在什么情况下会更新缓存中的文档?它会在云上更改后很快自动更新文档,还是在下次移动应用程序执行使用文档的查询时更新文档

只要您与这些文档同步,它就会在文档更改的第二刻发生。我的意思是,通过同步,您在代码中使用get调用来获取这些文档,或者如果您正在实时侦听文档更改。只需在不使用侦听器的情况下创建对文档或查询的引用,就不会以任何方式通知您

下次移动应用程序执行使用文档的查询时是否更新文档

不正确,因为您处于联机状态并且与文档同步,侦听器会立即触发

编辑2:


简而言之,每次文档发生更改时都会调用侦听器。下次应用程序执行查询时,语句不正确,因为当您创建查询并附加侦听器时,您始终与数据库同步,并且当文档发生更改时,会立即通知您。这不像是,文档在数据库中链接,当我在某个时间点查询时,我会得到更改,不,更改发生时总是会通知您。这就是实时数据库的美妙之处,在发生更改时会得到通知:

如果您启用了本地缓存,Firestore会自动将收到的任何文档存储在该本地缓存中


只有当应用程序通过调用get或onSnapshot请求文档时,才会发生这种情况。Firestore不会自动代表您请求文档。因此,如果您的应用程序没有请求文档,缓存将不会更新。

如果您启用了本地缓存,Firestore会自动将收到的任何文档存储在该本地缓存中


只有当应用程序通过调用get或onSnapshot请求文档时,才会发生这种情况。Firestore不会自动代表您请求文档。因此,如果你的应用程序没有请求文档,缓存将不会被更新。

虽然我手头没有任何链接,但我确信我已经多次听说B就是发生的事情。例如,客户端上的每个firestore uptate都算作可计费读取。因此,你需要有一种方法来控制它。我认为这一切都是有道理的,那里没有魔法。只有当您执行查询或可能侦听on change侦听器时,缓存才会被更新。虽然我手头没有任何链接,但我非常确定我已经多次听说B就是发生的事情。例如,客户端上的每个firestore uptate都算作可计费读取。因此,你需要有一种方法来控制它。我认为这一切都是有道理的,那里没有魔法。只有在您执行查询或可能侦听更改侦听器时,缓存才会更新。抱歉,但我认为您误解了我的问题。请查看我附加在问题后面的更新。对不起,我还是不明白。可能相关:我从未写过Firestore客户;我正在为一个项目评估Firestore,我已经阅读了一些文档。谢谢你的尝试。请再看看我更新的答案,你现在还好吗?嗨,蓝胡子!我能帮你了解其他信息吗?如果你认为我的答案对你有帮助,请考虑通过点击复选来接受它。✔️ 在投票箭头下方的左侧。应该把颜色改成绿色。我会很感激的。谢谢对不起,我想你误解了我的问题。请查看我附加在问题后面的更新。对不起,我还是不明白。可能相关:我从未写过Firestore客户;我正在为一个项目评估Firestore,我已经阅读了一些文档。谢谢你的尝试。请再看看我更新的答案,你现在还好吗?嗨,蓝胡子!我能帮你了解其他信息吗?如果你认为我的答案对你有帮助,请考虑通过点击复选来接受它。✔️ 在投票箭头下方的左侧。应该把颜色改成绿色。我会很感激的。谢谢请注意,自动缓存仅在Android和iOS应用程序默认情况下启用。对于web应用程序,我假设其他客户端需要调用enablePersistence方法。请注意,自动缓存仅在默认情况下对Android和iOS应用程序启用。对于web应用程序,我假设其他客户端需要调用enablePersistence方法。