跳至正文
首页 » 博客 » Working with Firebase Firestore and the Ignite UI for Angular Grid

Working with Firebase Firestore and the Ignite UI for Angular Grid

在本文中,我们将学习如何使用Firebase Firestore和用于Angular Grid的Ignite UI。Firestore是Firebase NoSQL数据库产品,因此,在开始之前,我建议您了解有关FirestoreIgnite UI for Angular的更多信息。

在本文中,我们将学习从Firestore读取数据,并将该数据绑定到用于Angular Grid的Ignite UI。在本主题的下一篇文章中,我们将介绍创建、删除和更新操作。

因此,让我们从设置Firestore开始,创建Angular项目以使用Angular的Ignite UI,然后从Firestore获取数据。

设置Firestore

您将导航到Firebase控制台当你在那里,点击 “添加项目” 选项。

点击 “添加项目” 后,你会得到一个对话框窗口提供项目信息。进入创建项目,如下图所示。在这里,我给出了项目名称iggridemo

创建项目后,您需要向项目添加应用。我们将添加一个web项目,因为我们将在Angular中使用Firestore数据收集,这是一个web项目。

当你点击web选项,你会得到片段添加到您的项目。复制此代码段,因为您可能需要稍后将其添加到Angular项目中。

注意: 我们将在Angular项目文件environment.prod.ts中添加以下设置。

接下来,单击侧面菜单选项中的 “数据库” 并创建一个集合。请记住,Firestore是基于NoSQL的数据库。在这里,我们创建集合来处理数据。要创建数据库,请转到侧面菜单,然后单击数据库,然后创建数据库。系统将要求您选择安全规则。选择 “ 开始测试模式 ” 选项,然后单击 “启用”。

设置安全规则后,单击 “添加集合” 将集合添加到数据库。

为集合命名。在这个例子中,我给出了 “ 产品” 的名称。

创建集合后,添加一个文档。我在产品集合中添加一个文档,如下图所示:

添加第一个文档后,数据库应该如下所示:

现在,让我们再向集合中添加一些文档。对于该操作,请单击产品集合中的 “添加文档”。

所以,我在产品集合中添加了五个文档。我们现在将在Angular Grid的Ignite UI中使用产品集合。到目前为止,我们只在Firebase Firestore中创建了该集合。

设置一个Angular项目与Ignite UI

我们有三个选项来设置Angular项目与Ignite UI的角度。

  1. 使用Ignite UI CLI创建一个新的Angular项目,该项目配置了Ignite UI for Angular。
  2. 在现有的Angular项目中使用Angular的点燃UI
  3. 使用用于Visual Studio Code的Angular工具箱扩展的Ignite UI

从现在开始,我假设你已经有一个Angular项目配置为使用Angular的Ignite UI。

设置AngularFire

我们将使用AngularFire库在Angular项目中使用Firebase首先,使用npm在Angular项目中安装AngularFire。

npm安装firebase @ angular/fire — 保存

安装Angularfire后,我们需要设置一个Firebase环境。为此,请打开并修改environment.prod.ts ,如下所示:

导出const环境 = {生产: ,firebase: {“你的钥匙”"iggriddemo.firebaseapp.com":" https://iggriddemo.firebaseio.com "projectId: "iggriddemo","iggriddemo.appspot.com" storageBucket,"1055912852453"}}; 

如果您记得设置Firestore,我们添加了一个web项目。我们需要将该设置从那里复制到environment.prod.ts中。如果您在开发环境中工作,则可能需要在environment.ts中添加上述条目。

接下来,在AppModule中,导入Firestore和AngularFire模块。在app. module.ts中导入,如下所示:

 “@ angular/fire/firestore” 导入 { AngularFirestoreModule}; “@ angular/fire” 导入 {angularfiredule}; “../environments/ environment导入 { environment}; 

修改AppModule:

@ NgModule({声明: [AppComponent],进口: [浏览器模块,浏览器动画模块,IgxGridModule.forRoot(),AngularFireModule.initializeApp(environment.firebase),AngularFirestoreModule],供应商: [],引导: [AppComponent]})AppModule导出 {} 

现在,我们在imports数组中添加了AngularFireModule和AngularFireStoreModule。

从Firestore集合中

读取数据

我们将从AppComponent中的Firestore集合中读取数据。首先,在AppComponent中导入AngularFirestore和Observable。

 “@ angular/fire/firestore” 导入 { AngularFirestore}; 'rxjs' 导入 { Observable}; 

接下来,让我们在组件的构造函数中获取数据:

项: Observable<any[]>;构造函数 (私有db: AngularFirestore) {    这个 .items = db.collection( '/products' ).valueChanges(); } 

如果您还记得,我们在Firestore中创建了一个产品集合。将所有内容放在一起,AppComponent将如下所示:

 “@ angular/core” 导入 { Component}; “@ angular/fire/firestore” 导入 { AngularFirestore}; 'rxjs' 导入 { Observable}; @ Component({'app-root' 选择器,templateUrl: './app.component.html',styleUrls: ['./app.component.css']})AppComponent导出 {“点燃UI for Angular Grid firestore”项目: Observable< any []>;构造函数 (私有db: AngularFirestore) { 这个 .items = db.collection( '/products' ).valueChanges(); }} 

在模板上,让我们为Angular Grid添加Ignite UI:

< h1 >欢迎来到 {title }}</ h1 ><igx-网格[数据]="项目 | 异步"[自动生成]="假"高度="400px"><igx-色谱柱字段="Id"[可排序]="true"页眉="Id"[可过滤]="true"></igx-色谱柱><igx-色谱柱字段="标题"[可排序]="true"页眉="标题"[可过滤]="true"></igx-色谱柱><igx-色谱柱字段="价格"[可排序]="true"页眉="价格"[可过滤]="true"></igx-色谱柱><igx-色谱柱字段="数量"[可排序]="true"页眉="数量"[可过滤]="true"></igx-色谱柱><igx-色谱柱字段="inStock"[可排序]="true"页眉="库存"[可过滤]="true"></igx-色谱柱></ igx-grid > 

所以,让我们通过代码来讨论,因为我们:

  • 添加了igxGrid
  • 通过属性绑定到项来设置数据。由于它是一个可观察的,我们使用异步管道。
  • 将autoGenerate属性设置为false,因为我们将手动添加列。
  • 配置的列并将其绑定到Firestore集合产品列。

在运行应用程序时,您会发现Angular Grid的Ignite UI正在显示来自Firestore的数据。对于产品,应呈现集合igxGrid,如下图所示:

在下一篇文章中,我们将看到如何执行创建、更新和删除操作。我希望你觉得这篇文章很有用,现在你应该能够轻松地使用Firebase Firestore和Ignite UI for Angular Grid。

如果你喜欢这篇文章,请分享。此外,如果您还没有Infragistics Ignite UI for Angular组件签出,请务必这样做!他们有50个基于材质的Angular组件,可帮助您更快地编写web应用程序代码。

</p