首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Angular无法订阅firebase列表observable

Angular是一种流行的前端开发框架,而Firebase是一种由Google提供的云服务平台。在Angular中,可以使用Firebase来实现实时数据同步和存储。在这个问答中,问题是关于Angular无法订阅Firebase列表observable的情况。

首先,需要明确的是,Angular可以通过使用Firebase提供的AngularFire库来订阅Firebase列表observable。AngularFire是一个官方支持的库,它提供了一组Angular指令和服务,用于简化与Firebase的集成。

当使用AngularFire时,可以使用AngularFireDatabase服务来订阅Firebase列表observable。该服务提供了一些方法,例如list(),用于获取Firebase数据库中的列表数据。可以通过调用list()方法并传入Firebase数据库中的路径来订阅一个列表observable。

下面是一个示例代码,展示了如何在Angular中订阅Firebase列表observable:

代码语言:txt
复制
import { Component } from '@angular/core';
import { AngularFireDatabase } from '@angular/fire/database';
import { Observable } from 'rxjs';

@Component({
  selector: 'app-example',
  template: `
    <ul>
      <li *ngFor="let item of items | async">{{ item }}</li>
    </ul>
  `,
})
export class ExampleComponent {
  items: Observable<any[]>;

  constructor(private db: AngularFireDatabase) {
    this.items = db.list('path/to/list').valueChanges();
  }
}

在上面的示例中,AngularFireDatabase服务被注入到了组件的构造函数中。然后,通过调用list()方法并传入Firebase数据库中的路径,将返回的列表observable赋值给了items属性。在模板中,使用async管道来订阅并展示列表数据。

需要注意的是,为了使用AngularFire,需要先安装@angular/fire库,并在Angular应用中进行配置。关于如何安装和配置AngularFire的详细信息可以参考AngularFire文档

总结起来,Angular可以通过使用Firebase和AngularFire来订阅Firebase列表observable。通过使用AngularFireDatabase服务的list()方法,可以轻松地获取和订阅Firebase数据库中的列表数据。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

一个Angular 5教程:一步一步指导实现你的第一个Angular 5应用程序

RxJS使用Observable来处理事件流。想想像这样:我们刚刚实现了在我们的表单发生变化时调用的代码。如果我们用承诺处理用户更改,则只有第一个用户更改会在我们需要重新订阅之前处理。...但是,尽管代替Observable的承诺将只运行一次并在此之后处理,但只要流正在更新并且我们不取消订阅Observable就会持续运行。...所以我们的订阅需要取消订阅(如果我们不查找内存泄漏),如下所示: const subscription = observable.subscribe(value => console.log(value...Angular为我们提供的另一种语法糖,与我们讨论过的同样的事情 - 订阅Observable并通过评估我们的表达式返回其当前值。...它将采取一个单一的价值,并取消订阅。但是实时订阅似乎更合理(假设系统中有多个用户),所以让我们更改我们的代码以处理订阅

42.6K10

Angular进阶教程2-

Provider把标识(Token)映射到列表对象,同时还提供了一个运行时所需的依赖,被依赖的对象就是通过该方法来创建的。..._goodsListService.getHttpResult('12', 'zs') .subscribe((res) => { // 由于httpClient返回的是observable,他必须被订阅之后才可以执行并返回结果...从中我们可以发现observable的一些特性,如下所示: 必须被调用(订阅)才会被执行 observable 被调用后,必须能被关闭,否则会一直运行下去 对于同一个observable,在不同的地方subscribe...\color{#0abb3c}{特殊的observable}特殊的observable:我们可以像订阅任何observable一样去订阅subject。...】 普通的Observble是单播的\color{#0abb3c}{单播的}单播的【每个已经订阅的观察者(observer)都拥有observable的独立执行,上述Observble的介绍也有提及】

4.1K30

浅谈Angular

1.准备工作: ①全局安装 Angular CLI。...(RxJS) 遇到的问题:数据不会及时更新,原因:组件的ngOnInit方法只会在其被创建时走一次,如果该组件不销毁,init方法不会再走,导致当前数据无法更新 解决办法: 使用RxJS...解决,RxJS提供响应式开发(基于观察者模式),我们可以订阅某个值,一旦该值被订阅,如果其存储的数据发生变化,订阅者就会收到通知,进而做出对应的处理 注意点: AngularJS里,并不是所有的值都可以被订阅...,只有Observable类或者Observable的子类创建出的对象可以被订阅 subscribe是Observable类下的一个函数。...从Observable的中文名:”可观察的”就能看出,Observable的作用是可以起到类似监听的作用,但它的监听往往都是在跨页面中, 6.组件间通信: 1.父向子 -- @Input装饰器声明输入属性

4.4K10

【响应式编程的思维艺术】 (5)Angular中Rxjs的应用示例

开发中Rxjs几乎默认是和Angular技术栈绑定在一起的,笔者最近正在使用ionic3进行开发,本篇将对基本使用方法进行演示。...冷热ObservableObservable从被订阅时就发出整个值序列 热Observable无论是否被订阅都会发出值,机制类似于javascript事件。...Angular应用中的Http请求 Angular应用中基本HTTP请求的方式: import { Injectable } from '@angular/core'; import { Observable...,{observe:'response'}); } http请求默认返回一个冷Observable,每当返回的流被订阅时就会触发一个新的http请求,Rxjs中通过shareReplay( )操作符将一个可观测对象转换为热...Observable(注意:shareReplay( )不是唯一一种可以加热Observable的方法),这样在第一次被订阅时,网络请求被发出并进行了缓存,之后再有其他订阅者加入时,就会得到之前缓存的数据

6.7K20

Rxjs&Angular-退订可观察对象的n种方式

原文/出处: RxJS & Angular — Unsubscribe Like a Pro 在angular项目中我们不可避免的要使用RxJS可观察对象(Observables)来进行订阅(Subscribe...{ getEmissions(scope: string): Observable { return Observable.create((observer) => {...方式一 "常规"的取消订阅的方式 最简单的订阅和取消订阅一个可观察对象的方式是在 ngOnInit 方法中订阅可观察对象(Observable), 然后在组件类中创建一个类属性用来保存这个订阅(Subscription...与前两个示例不同, 这里我们不需要在组件中手动取消订阅, 而是将可观察对象(Observable)传递个 AsyncPipe: @Component({ selector: 'app-async',...你只需创建可观察对象(Observables)然后Angular会帮助你进行订阅和取消订阅. 方式4 takeUntil 操作符 RxJS包含许多有用的操作符, takeUntil就是其中之一.

1.2K00

理论 | Angular 中的响应式编程 -- 浅淡 Rx 的流式思维

3、填年龄时,出生日期随之变化,因为无法精确,所以只需精确到选择的单位即可。...Async 管道 到目前为止,我们还没有进行对 Observable订阅,如果不订阅的话,写的再漂亮的语句也不会执行的。...所以,我们需要再页面销毁(ngOnDestroy 中)的适合取消订阅。 需要订阅的 Observable 少的时候还好,一旦多起来,处理时也挺麻烦,像下面的代码那样。...所幸的是,Angular 提供了对于响应式编程非常友好的设计,我们完全可以不在代码中做订阅或取消订阅的动作。那么问题来了,不订阅的话,值怎么获得呢?答案是 Async 管道。...,那么 | async 是说 computed$ 是一个 Observable,请对他采用异步处理,即初始化时自动的订阅以及在组件销毁时自动取消订阅

5.2K10

Angular快速学习笔记(4) -- Observable与RxJS

介绍RxJS前,先介绍Observable 可观察对象(Observable) 可观察对象支持在应用中的发布者和订阅者之间传递消息。 可观察对象可以发送多个任意类型的值 —— 字面量、消息、事件。...基本用法和词汇 作为发布者,你创建一个 Observable 的实例,其中定义了一个订阅者(subscriber)函数。 当有消费者调用 subscribe() 方法时,这个函数就会执行。...订阅 只有当有人订阅 Observable 的实例时,它才会开始发布值。...import { Component } from '@angular/core'; import { Observable } from 'rxjs'; @Component({ selector...中的observables Angular 中大量使用了可观察对象,作为处理各种常用异步操作的接口。

5.1K20

Angular的12个经典问题,看看你能答对几个?(文末附带Angular测试)

取消订阅可观察的对象并脱离事件处理程序,以避免内存泄漏。...可以通过模块的任何一个组件,使用订阅方法来实现事件发射的订阅。...因为shadow DOM本质上是静态的,同时也是开发人员无法访问的,所以它是一个很好的候选对象。因为它缓存的DOM将在浏览器中呈现得更快,并提供更好的性能。...通常Observable比Promise更受欢迎,因为它不但提供了Promise特性,还提供了其它特性。使用Observable可以处理0,1或多个事件。你可以在每种情况下使用相同的API。...如果服务器的HTTP请求结果或其它一些异步操作不再需要,则Observable订阅者可以取消订阅,而Promise将最终调用成功或失败的回调,即使你不需要通知或其提供的结果。

17.3K80

Angular JSONP 详解

由于同源策略,一般来说位于 server1.example.com 的网页无法与 server2.example.com 的服务器沟通,而HTML的 script 元素是一个例外。...—— 维基百科 二、JSONP 跨域原理 AJAX 无法跨域是受到 “同源策略” 的限制,但是带有 src 属性的标签(例如 、、)是不受该策略限制的,因此我们可以通过向页面中动态添加...三、Angular JSONP 示例 在 Angular 项目中,要使用 JSONP 实现跨域资源访问,我们需要导入 HttpClientModule 和 HttpClientJsonpModule 模块...四、Angular JSONP 原理简析 在了解 JSONP 的工作原理之后,再看 Angular 的源码就清晰简单很多。...是的,没错我们还差可以执行取消订阅的逻辑: return () => { cancelled = true; // Remove the event listeners so they won't

2.3K41
领券