在阅读了Vanilla Firebase和AngularFire文档之后,在实现了我的应用程序的某些部分后,我看到Firebase数据库所需的所有内容都可以在Vanilla Firebase的帮助下实现,而无需AngularFire的任何帮助。
此外,与Vanilla Firebase相比,AngularFire仅提供有限数量的资源。那么,当它有许多可用的资源时,为什么我要使用AngularFire而不是Vanilla Firebase呢?我无法理解这种情况。
使用AngularFire而不是Vanilla Firebase有什么好处?
好吧,angularfire是一个帮助库。它应该通过提供创建的绑定来使您的生活更轻松,以使角度和firebase之间的集成更加无缝。
一个实际的例子:
开发人员通常需要使用数组才能显示数据。但是,firebase不会以数组形式存储任何数据。相反,它使用类似JSON的结构。话虽这么说,为了让每个人都能更容易地从firebase中检索数据作为数组,angularfire给你$ firebaseArray(),它实质上转换来自某个位置的数据并返回数组内的相同数据(只读伪数组)。
请注意,所有这些都可以通过使用vanilla firebase手动检索数据,然后将从firebase(作为对象)获取的数据转换为客户端上的数组来实现。
当你对它有意义时,你应该使用angularfire,如果它让你的生活更轻松。这就是它的用途。如果你只需使用vanilla firebase即可完成所需的一切,那就没有理由让事情复杂化。我还应该指出,你可以同时使用firebase和angularfire。正如评论中提到的那样,它不是一种选择,也不是选择,因为两者都很好地结合在一起。这意味着您可以将vanilla firebase用于更具体的用例,同时将angularfire用于其他目的。
总而言之,尽管可能需要一大堆额外的代码,但是使用angularfire也可以实现与flamefire一起使用的所有功能。换句话说,angularfire建立在firebase之上,不会为您提供新的firebase功能。从本质上讲,它使用带角度的firebase更有趣和实用。
Angularfire2
Angularfire2是一个完全不同的故事,因为它实际上将RxJS可观察量和其他反应模式与firebase集成在一起,所有这些都默认在vanilla firebase中不可用。
但在大多数情况下,它们都有相同的用途。 Angularfire2也是firebase之上的一个抽象,它提供了实时绑定,旨在促进firebase和angular2之间的集成。此外,它还为您提供了以反应方式使用firebase的可能性。