标签: angularfire2

Firebase 列表的嵌套 Angular2 ngFor 指令

我想使用ngForAngular 2将 Firebase 查询的结果绑定到我的模板。这很容易在下面实现。

成分:

export class FeaturedThreadsComponent { 
    threads: FirebaseListObservable<any[]>;
    qualitySubject: Subject<any>;

    constructor(af: AngularFire) {
        this.qualitySubject = new Subject();
        this.threads = af.database.list('/threads', {
            query: {
                orderByChild: 'quality',
                endAt: 5
            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

模板:

<div *ngFor="let thread of threads | async">
    {{thread.title}}
</div>
Run Code Online (Sandbox Code Playgroud)

但是如果我想使用ngFor嵌套在模板中的另一个指令来列出子对象的键......

<div *ngFor="let thread of threads | async">
    {{thread.title}}
    <div *ngFor="let participant of thread.participants">
        {{participant.$key}}}
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我收到控制台错误, Cannot find a differ supporting object '[object Object]' of type 'object'. NgFor only supports …

firebase firebase-realtime-database angularfire2 angular

5
推荐指数
1
解决办法
1777
查看次数

当我们有多对多关系时,如何在 firebase 中获取数据

我阅读了 Firebase 中的多对多关系问题,
这里描述了如何在 firebase(nosql 数据库)中创建或构建多对多关系,这很容易,

companyContractors
  companyKey1
    contractorKey1: true
    contractorKey3: true
  companyKey2
    contractorKey2: true
contractorCompanies
  contractorKey1
    companyKey1: true,
    companyKey2: true
  contractorKey2
    companyKey2: true
  contractorKey3
    companyKey1: true
Run Code Online (Sandbox Code Playgroud)

但是当我想获得所有承包商的特定公司时,我可以只使用一个请求吗?因为在这种情况下,我只得到 id 列表,在那里之后,使用 js 循环或 forEach,我做了多个请求。

通常在其他 API 上,我只使用

URL/contractor/:id/company or 
URL/company/:id/contractors 
Run Code Online (Sandbox Code Playgroud)

如何在firebase上做到这一点?
有一个使用angular2,angularfire2的例子会很酷,
谢谢

AskFirebase

javascript nosql firebase firebase-realtime-database angularfire2

5
推荐指数
1
解决办法
1799
查看次数

在移动浏览器上通过 angularfire 登录到谷歌时出现错误“403 disallowed_useragent”

我正在 angular4 中使用 angularfire2 v4.0.0-rc.2 开发一个项目并将其发布在 firebase 上。

使用 facebook 和 google 登录都可以在桌面浏览器和原生 android 应用程序上运行。

当我尝试通过移动浏览器在 chrome 中登录时,出现以下错误: 在此处输入图片说明

我发现了很多关于谷歌阻止 webViews 访问的帖子,但没有一个真正回答关于如何在没有不特定于 firebase 的解决方法的情况下解决问题的问题。

使用带有弹出窗口和重定向的 angularfire signIn 会发生错误。

有什么想法吗?

firebase firebase-authentication angularfire2 angular

5
推荐指数
1
解决办法
799
查看次数

在 AngularFireAuth 中获取当前用户

如何获取登录用户?

我这样做: console.log('登录...'); this.afAuth.auth.signInWithEmailAndPassword(this.email, this.password);

但是文档并不清楚如何让用户进入代码。它们在模板中显示了一种方式,但我需要存储当前用户。

firebase firebase-authentication angularfire2 google-cloud-firestore

5
推荐指数
2
解决办法
7981
查看次数

获取 Firestore 的 UID 参考

我正在尝试获取对文档 UID 的引用,以便我可以通过其 UID 在项目中的其他位置使用该文档。根据文档,我正在使用 AngularFire2 (v5) 执行以下操作:

var ref= this.afs.collection(placeToAdd).doc();
Run Code Online (Sandbox Code Playgroud)

这给了我以下错误:“预期 1 个参数,但得到 0”。它希望我在 doc() 方法中添加一个参数。所以,我这样做:

var ref= this.afs.collection(placeToAdd).doc(thing);
Run Code Online (Sandbox Code Playgroud)

然后我设置我的 Firebase 对象:

ref.set({
        item1: 'value 1',
        item2: 'value 2',
        item3: 'value 3'
      });
Run Code Online (Sandbox Code Playgroud)

现在如何获取引用的 Firestore 生成的 UID?

firebase angularfire2 angular google-cloud-firestore

5
推荐指数
1
解决办法
1万
查看次数

如何在 angularFire 2 Account Create with email 中实现 reCaptcha?

我正在尝试使用 angularFire 2 在 firebase 中登录并创建帐户。电话登录有一个运行良好的 reCaptcha 字段。使用电子邮件和密码创建帐户也工作正常,但我想在创建表单(如电话登录功能)中使用 reCaptcha,但我没有找到方法,可以在 angularFire 中使用电子邮件和密码创建帐户并使用 reCaptcha 验证。我也尝试过文档,但没有这样的。如果 Angular Fire 2 中有类似的选项,请帮助我。我正在使用"angularfire2": "^4.0.0-rc.1",

firebase angularfire2 angular angularfire5

5
推荐指数
0
解决办法
236
查看次数

订阅一个 AngularFireObject

我刚刚升级到 AngularFire2 rc 5.0。

我修改了我的代码,使其与新类型和功能相匹配,但是在尝试订阅 a 时出现以下错误.object(path)

Property 'subscribe' does not exist on type 'AngularFireObject'
Run Code Online (Sandbox Code Playgroud)

我的代码如下。

供应商:

getEvent(id: string): AngularFireObject<any> {
    let path = `/events/${id}`;
    return this.af.object(path).valueChanges();
  }
Run Code Online (Sandbox Code Playgroud)

页:

...
event$: AngularFireObject<any>;
...

// Retrieve event's info
this.event$ = this.eventService.getEvent(this.id);

// Retrieve event's ownership info
let subscription = this.event$.subscribe(event => {
  this.owner$ = this.userService.getUserPublicInfo(event.owner);
});
Run Code Online (Sandbox Code Playgroud)

任何的想法?

observable ionic-framework angularfire2 angular angularfire5

5
推荐指数
1
解决办法
3048
查看次数

Firebase 在 angularfire2 中返回“app/bad-app-name”

在我的 Angular 应用程序中,Firebase 返回一个显示bad-app-name为代码的错误。我在 angular 应用程序中使用 angularfire2。

我已经仔细检查了 Firebase 配置,没问题,那么如何解决这个错误。

app.components.ts

import { Component, OnInit } from '@angular/core';
import { FormsModule, NgForm } from "@angular/forms";
import { AngularFireDatabase } from "angularfire2/database";
import { Router } from '@angular/router';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent{
  isLoggedIn: boolean = false;
  courses: any[];
  constructor(public db: AngularFireDatabase) {
    db.list('/Courses').valueChanges().subscribe(courses => {
      this.courses = courses;
      console.log(this.courses);
    });
  }

  login() {
    this.isLoggedIn = !this.isLoggedIn;
  }
  user:any;
  saveData(formData) {
    if (formData.valid) …
Run Code Online (Sandbox Code Playgroud)

javascript firebase angularfire2 angular

5
推荐指数
1
解决办法
2074
查看次数

Firebase Storage getDownloadURL() 是可重用的,还是应该始终重新生成?

这是保存在数据库中并重用 angularfire2 返回的 urlgetDownloadURL()而不是getDownloadURL()每次需要显示来自 Firebase 存储的图像时执行的好做法吗?

如果我getDownloadURL()在组件中使用,则每次访问组件时都会重新加载图像。我想避免这种情况。如果我在上传图像后将 url 保存在我的数据库中,然后每次需要显示图像时都使用这个 url,这可以解决问题。但是,这可能不是正确的方法,Firebase 存储可能会在某个时候更新 url。

firebase firebase-storage angularfire2 angular

5
推荐指数
1
解决办法
685
查看次数

使用 Firebase 模拟器在页面刷新时自动退出

@angular/fire在我的项目中使用 firebase。为了测试与 firebase 服务的集成,我firebase emulators: start在命令行中运行。在为 angular 应用程序提供服务ng serve --open时,每当我进行更改并保存任何文件时,页面都会重新加载,并且我会自动退出 Firebase 帐户。这仅在使用 Firebase 模拟器时发生。我不知道这是否是@angular/firefirebase auth 模拟器的问题。这非常令人沮丧,因为我需要登录 angular 应用程序中的每个文件更改。

我的 App.module.ts 对提供者有以下配置。每当我登录

  providers: [
    {
      provide: USE_AUTH_EMULATOR,
      useValue: environment.useEmulators ? ["localhost", 9099] : undefined,
    },
    {
      provide: USE_DATABASE_EMULATOR,
      useValue: environment.useEmulators ? ["localhost", 9000] : undefined,
    },
    {
      provide: USE_FIRESTORE_EMULATOR,
      useValue: environment.useEmulators ? ["localhost", 8080] : undefined,
    },
    {
      provide: USE_FUNCTIONS_EMULATOR,
      useValue: environment.useEmulators ? ["localhost", 5001] : undefined,
    },
  ],
Run Code Online (Sandbox Code Playgroud)

编辑 1:我通过注入AngularFireAuth …

javascript firebase-tools firebase-authentication angularfire2 angular

5
推荐指数
0
解决办法
350
查看次数