在Firebase中,我真的必须下载整个节点才能存储某些内容吗?

在Firebase中,我真的必须下载整个节点才能存储某些内容吗?,firebase,firebase-realtime-database,angularfire2,Firebase,Firebase Realtime Database,Angularfire2,我正在将Firebase与Angular2软件包AngularFire2一起使用,并试图学习如何创建新项目 根据文件: 使用push()方法在列表中添加新项 const items = af.database.list('/items'); items.push({ name: newName }); 在我的例子中,“items”将是一个巨大的数组。我真的需要先把它拿出来,然后推一下吗?我不能不下载就直接推送吗?要向某个位置添加新的子项,需要创建对该位置的引用。创建对某个位置的引用不会下载该位

我正在将Firebase与Angular2软件包AngularFire2一起使用,并试图学习如何创建新项目

根据文件:

使用push()方法在列表中添加新项

const items = af.database.list('/items');
items.push({ name: newName });

在我的例子中,“items”将是一个巨大的数组。我真的需要先把它拿出来,然后推一下吗?我不能不下载就直接推送吗?

要向某个位置添加新的子项,需要创建对该位置的引用。创建对某个位置的引用不会下载该位置的所有项目

使用Firebase数据库的JavaScript SDK,需要:

const items = firebase.database().ref('/items');
items.push({ name: newName });

另一方面:创建AngularFire2 observable将在该位置下载项目。因此,如果您希望在不下载现有数据的情况下添加项目,请使用Firebase数据库的JavaScript SDK。

要向某个位置添加新的子项,您需要创建对该位置的引用。创建对某个位置的引用不会下载该位置的所有项目

使用Firebase数据库的JavaScript SDK,需要:

const items = firebase.database().ref('/items');
items.push({ name: newName });

另一方面:创建AngularFire2 observable将在该位置下载项目。因此,如果您想在不下载现有数据的情况下添加项目,请使用Firebase数据库的JavaScript SDK。

Hmm。在observable实际下载项目之前,我不需要订阅它吗?可能是这样。我不是安格鲁火专家。但您可以查看浏览器的“网络”选项卡,查看数据是否下载/何时下载。但可以肯定的是:我共享的常规JavaScript SDK片段将添加一个子项,而无需下载这些项。由于AngularFire是在同一个SDK上构建的,因此它们可以完美地互操作:因此新的子对象将出现在同一页面/应用程序中其他地方的任何Observable中。AngularFire2列表和对象Observable将不会下载任何内容,直到调用
subscribe
。所以这两个片段基本上没有区别。很高兴听到@cartant。请记住:您始终可以在浏览器的“网络”选项卡中准确检查Firebase客户端发送/接收的内容。请参阅,我正在使用firebase.database().ref,但更新发生时仍在进行节点刷新。Hmm。我不需要在observable实际下载项目之前订阅它吗?那可能是。我不是安格鲁火专家。但您可以查看浏览器的“网络”选项卡,查看数据是否下载/何时下载。但可以肯定的是:我共享的常规JavaScript SDK片段将添加一个子项,而无需下载这些项。由于AngularFire是在同一个SDK上构建的,因此它们可以完美地互操作:因此新的子对象将出现在同一页面/应用程序中其他地方的任何Observable中。AngularFire2列表和对象Observable将不会下载任何内容,直到调用
subscribe
。所以这两个片段基本上没有区别。很高兴听到@cartant。请记住:您始终可以在浏览器的“网络”选项卡中准确检查Firebase客户端发送/接收的内容。请参见,我正在使用firebase.database().ref,但更新时仍在进行节点刷新。