标签: angularfire2

如何测试与Firebase交互的服务?

从Firebase获取数据的惯例似乎是创建一个在内部使用AngularFire的服务类.然后,在您的应用程序的组件中,您可以注入并使用该服务.这使您可以在单元测试组件时轻松模拟服务.

但是,我仍然不清楚如何测试实际的服务本身.

举个例子,假设我todo list在Firebase中有一个节点,我有一个简单的服务来抓取所有的节点todos,如下所示:

import { Injectable } from '@angular/core';
import { AngularFire } from 'angularfire2';

@Injectable()
export class TodoService {
  constructor(private af: AngularFire) { }

  getAll(): FirebaseListObservable<any[]> {
    return this.af.database.list('todos');
  }
}
Run Code Online (Sandbox Code Playgroud)

您将如何测试此服务是否符合您的期望?

firebase firebase-realtime-database angularfire2 angular

3
推荐指数
1
解决办法
1965
查看次数

Firebase update() - 排除字段

我有一个课程,我正在使用它保存到Firebase update().

是否可以阻止保存对象的某些字段(名称已知)保存到firebase db?

transient在java中一样思考.

我的意思是不使用JS delete运算符.

javascript firebase typescript firebase-realtime-database angularfire2

3
推荐指数
1
解决办法
395
查看次数

错误:无法解析'@ firebase/webchannel-wrapper'

所以,我最近更新到angularfire2的最新和最好的,并已遇到一些问题.我按照angularfire2开发人员指南安装项目,但仍然收到以下错误:

[18:57:50]  ionic-app-script task: "build" [18:57:50]  Error: ./node_modules/firebase/firestore/platform_browser/webchannel_connection.js Module not found: Error: 
        Can't resolve '@firebase/webchannel-wrapper' in 
        '/Users/usr/Documents/project/node_modules/firebase/firestore/platform_browser' resolve 
        '@firebase/webchannel-wrapper' in 
        '/Users/usr/Documents/project/node_modules/firebase/firestore/platform_browser' Parsed request is 
        a module using description file: /Users/usr/Documents/project/node_modules/firebase/package.json 
        (relative path: ./firestore/platform_browser) Field 'browser' doesn't contain a valid alias configuration 
        after using description file: /Users/usr/Documents/project/node_modules/firebase/package.json 
        (relative path: ./firestore/platform_browser) resolve as module looking for modules in 
        /Users/usr/Documents/project/node_modules using description file: 
        /Users/usr/Documents/project/package.json (relative path: ./node_modules) Field 'browser' doesn't 
        contain a valid alias configuration after using description file: 
        /Users/usr/Documents/project/package.json (relative path: ./node_modules) …
Run Code Online (Sandbox Code Playgroud)

typescript ionic2 angularfire2 ionic3 angular

3
推荐指数
1
解决办法
1599
查看次数

命名空间“ firebase”没有导出成员“ firestore”

刚开始使用AngularFire2 v5时,运行该应用程序时出现以下错误大约十二次:命名空间'firebase'在以下.d.ts文件中没有导出的成员'firestore':

node_modules/angularfire2/firebase.app.module.d.ts
node_modules/angularfire2/firestore/collection/changes.d.ts
node_modules/angularfire2/firestore/firestore.d.ts
node_modules/angularfire2/firestore/interfaces.d.ts
node_modules/angularfire2/firestore/observable/fromRef.d.ts
Run Code Online (Sandbox Code Playgroud)

我在“ angularfire2”上:“ ^ 5.0.0-rc.3”。

typescript angularfire2 angular

3
推荐指数
2
解决办法
5069
查看次数

使用angularFire 2的Firebase firestore集合计数

我想获取firestore中存在的文档总数.我不想只获取数据内部产品集合的总数我有200,000个项目是可能的Angular 4-5,而不是angular.js

有人可以告诉我如何实现这一目标吗?

我的代码到目前为止并没有用

  get_total_messages() {
    this.messages_collection = this.afs.collection<MessageEntity>('messages');
    return this.messages_collection.snapshotChanges();
  }
Run Code Online (Sandbox Code Playgroud)

结束这是我尝试获取数据但不是我想要的方式;

this.firebase_Service.get_total_messages().subscribe( data => {
   console.log(data);
});
Run Code Online (Sandbox Code Playgroud)

firebase angularfire2 google-cloud-firestore

3
推荐指数
1
解决办法
3301
查看次数

Angular&AngularFire 5从文档中检索数据

我在用什么

  • 角度5
  • AngularFire5
  • Firebase和Firestore

我正在努力实现的目标

我目前正在使用Google Firebase的新Firestore在学习角度的同时创建一个新应用。我的应用程序当前创建一个名为Links的集合,并创建一个具有自定义ID的新文档,该自定义ID在用户添加链接(即shorturl)时生成,该文档中包含4个字段:

  • uid
  • 网址
  • 短网址
  • 点击次数

我希望应用程序查询url字段中文档内的数据。

到目前为止我有什么

我已经创建了正确文档的路径:

  linkCollection: Observable<{}>;
  constructor(private afs: AngularFirestore, private router: Router) {
      this.path = this.router.url.replace('/','');
      afs.collection('Links').doc(this.path).valueChanges();
  }
Run Code Online (Sandbox Code Playgroud)

我被困在哪里

这可能是一个简单的解决方案,但我不确定如何获取url字段。我拥有的代码能够检索该文档,并且在另一部分中使用类似的方法来检索所有想法,并使用* ngFor显示数据,但不确定如何在ts文件而不是模板中进行操作。

firebase angularfire2 angular google-cloud-firestore angularfire5

3
推荐指数
1
解决办法
4365
查看次数

firestore云函数用于获取集合中的聚合值

假设我有一个应用程序存储用户帐单,用户添加或删除帐单.数据结构如下:

users/user_id/bills/bill_id
Run Code Online (Sandbox Code Playgroud)

票据文件结构为

{ bill_name: string, amount: number }
Run Code Online (Sandbox Code Playgroud)

我希望显示与账单名称对应的用户聚合值,可以说我在账单集合中有2个条目

{ bill_name: 'amazon', amount: 1000 }
{ bill_name: 'amazon', amount: 2000 } 
Run Code Online (Sandbox Code Playgroud)

我的输出应该是

{ bill_name: 'amazon', amount: 3000 }
Run Code Online (Sandbox Code Playgroud)

我的问题是什么是最好的聚合值

  1. 创建一个在onWrite 上触发的云功能,/user/user_id/bills/bill_id 并在/users/user_id/aggregated_bills/用户添加或删除账单时创建一个新条目,以及此功能从/users/user_id/aggregated_bills/bill_id/账单名称为"amazon" 的数据中读取数据添加对此条目进行数学处理并存储新条目aggregated_bills集合中的值.我还想知道我们是否可以从云功能中添加或读取数据库,然后引用它.在functions.firestore.document('/users/{user_id}/bills/{bill_id}').onWrite( ...

  2. 创建一个在HTTPS请求时触发的云功能,并从/users/user_id/bills/账单名称为"amazon"的位置读取数据并计算其中的聚合值,并返回响应.

  3. 可能是这个问题的任何其他解决方案

在这里,我想说,获取汇总值不仅适用于一个账单,而且适用于多个账单.假设我想向用户仪表板显示他看到前20个账单的汇总值

firebase firebase-realtime-database google-cloud-functions angularfire2 google-cloud-firestore

3
推荐指数
1
解决办法
1759
查看次数

如何使用角度5中的批处理写入从Cloud Firestore中删除多个文档

如Firebase Cloud Firestore Batched中所述:

如果不需要读取操作集中的任何文档,则可以将多个set操作作为包含set(),update()或delete()操作的任意组合的单个批处理执行。一批写操作是原子完成的,可以写到多个文档。

如何使用angular 5删除集合中的所有文档?

// Get a new write batch
var batch = db.batch();


// Delete the city 'LA'
var laRef = db.collection("cities").doc("LA");
batch.delete(laRef);



<!--  Delete All Tasks  -->
    <button 
      mat-button mat-icon-button 
      (click)="tasksService.deleteAllTasks(openSnackBar())" 
      matTooltip="Delete All Tasks" 
      class="toolbar-btn" 
      [disabled]="(tasksService.tasks$ | async)?.length == 0">
      <i class="fa fa-trash"></i>
    </button>
<!-- Delete All Tasks  -->
Run Code Online (Sandbox Code Playgroud)

firebase angularfire2 google-cloud-firestore angular5

3
推荐指数
1
解决办法
1295
查看次数

Angular 6和AngularFire2 RxJS错误

我想用AngularFire 2创建一个新的Angular 6应用程序.虽然我遵循了教程,但是我得到了一个版本错误.

AngularFire2设置教程:https: //github.com/angular/angularfire2/blob/master/docs/install-and-setup.md

即使我只是尝试使用教程中看到的Observable,我也会收到以下错误:

ERROR in node_modules/angularfire2/angularfire2.d.ts(3,10): error TS2305: Module '"/Users/tarek/Documents/Development/web_app/apphoven-web/node_modules/rxjs/Subscription"' has no exported member 'Subscription'.
node_modules/angularfire2/firestore/collection/changes.d.ts(3,10): error TS2305: Module '"/Users/tarek/Documents/Development/web_app/apphoven-web/node_modules/rxjs/Observable"' has no exported member 'Observable'.
node_modules/angularfire2/firestore/collection/collection.d.ts(3,10): error TS2305: Module '"/Users/tarek/Documents/Development/web_app/apphoven-web/node_modules/rxjs/Observable"' has no exported member 'Observable'.
node_modules/angularfire2/firestore/document/document.d.ts(3,10): error TS2305: Module '"/Users/tarek/Documents/Development/web_app/apphoven-web/node_modules/rxjs/Observable"' has no exported member 'Observable'.
node_modules/angularfire2/firestore/firestore.d.ts(3,10): error TS2305: Module '"/Users/tarek/Documents/Development/web_app/apphoven-web/node_modules/rxjs/Observable"' has no exported member 'Observable'.
node_modules/angularfire2/firestore/interfaces.d.ts(1,10): error TS2305: Module '"/Users/tarek/Documents/Development/web_app/apphoven-web/node_modules/rxjs/Subscriber"' has no exported member 'Subscriber'.
node_modules/angularfire2/firestore/observable/fromRef.d.ts(2,10): error TS2305: Module '"/Users/tarek/Documents/Development/web_app/apphoven-web/node_modules/rxjs/Observable"' has no exported member 'Observable'. …
Run Code Online (Sandbox Code Playgroud)

angularfire2

3
推荐指数
1
解决办法
4489
查看次数

如何为每个集合插入添加时间戳,如何在Cloud Functions中更新Firestore数据库

我有一个名为Posts的Firestore集合,我在客户端插入了一个插件,即可正常工作。

我想使用firebase函数将createdAt和updatedAt字段添加到我的帖子集合firestore中的每个插入中。

firebase firebase-realtime-database google-cloud-functions angularfire2 google-cloud-firestore

3
推荐指数
2
解决办法
1007
查看次数