标签: angularfire2

获取 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
查看次数

在SSR应用程序中从Firestore获取数据时出现“app.firestore不是函数”

我目前在 youtube 上关注了有关具有 firebase 功能的 SSR 的视频。这似乎很完美。现在我正在尝试向我的 ssr 样板应用程序添加一些附加功能。我想添加 Firebase firestore 支持,以便我可以从 firebase firestore 获取数据。我收到此错误ERROR { Error: Uncaught (in promise): TypeError: app.firestore is not a function,并且这只发生在函数(服务器)中。在前端检索数据,但由于功能(服务器)错误,SSR 部分无法工作。我似乎找不到任何解决方案。我的代码可以在这里查看:Github_Repository

我看不出我在这里缺少什么,希望发布这个问题会有所帮助。

谢谢。

firebase angularfire2 angular google-cloud-firestore

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

在 AngularFire 应用程序中创建一个 Timestamp 对象

第一次尝试

import { Timestamp } from '@firebase/firestore-types';
Run Code Online (Sandbox Code Playgroud)

那么如何创建一个 Timestamp 对象呢?

var now: Timestamp = ???

var now: Timestamp = Timestamp.now() //Module not found: Error: Can't resolve '@firebase/firestore-types'
Run Code Online (Sandbox Code Playgroud)

timestamp firebase angularfire2 angular

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

使用 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
查看次数

如何将 @angular/fire 添加到 Nx 工作区(Angular 项目)?

我想将@angular/fire添加到我的 Nx 工作区(Angular 应用程序)中。

我试图与最佳实践保持一致,但是,官方文档中没有任何关于将此库添加到工作区中的内容。

或者我错过了什么?


  1. 安装
    • 通过标准命令安装lib可以吗?
    • npm i @angular/fire ... 或 ... ng add @angular/fire
    • 是否有特定的“Nx 方式”安装它?

  1. 放置和命名
    我应该在哪个模块中调用initializeApp()方法?
    • 在应用程序模块中?(在采用 Nx 之前我就是这样做的)

    • 或者一个lib模块?(在我看来这更接近 Nx 哲学)

    • 如果答案是“一个 lib 模块”

      • 应该是哪个模块?
      • 我应该把 lib/module 放在哪里以及我应该给它命名什么?
      • “libs/data-access/api”是个好主意吗?

  1. 使用API
    • 如何使用已安装的包和初始化的模块(lib)?
    • 我是否应该将 api 库多次导入到需要该功能的每个库中?
    • 或者我只将 api lib 导入到应用程序中一次吗?

如此严格地遵循最佳实践(命名约定等)可能看起来很愚蠢,但我真的想以正确的方式做事。

firebase angularfire2 angular nrwl nrwl-nx

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

最新@angular/fire中的错误:Firebase:没有创建Firebase应用程序“[DEFAULT]” - 调用Firebase App.initializeApp()

我最近升级到了最新版本的@angular/fire,一切工作正常,但现在我已经从 compat 库迁移出去,现在我陷入了这个问题。我在以下代码中收到此错误: Firebase: No Firebase App '[DEFAULT]' has been created - call Firebase App.initializeApp()

// ...
import {getAuth, provideAuth} from '@angular/fire/auth';
import {getFirestore, provideFirestore} from '@angular/fire/firestore';
import {initializeApp, provideFirebaseApp} from '@angular/fire/app';
// ...

@NgModule({
  // ...
  providers: [
    // ...
    provideFirebaseApp(() => initializeApp(window['firebase_config'])),
    provideFirestore(() => getFirestore()),
    provideAuth(() => getAuth()),
    // ...
  ],
  // ...
})
export class ApModule {
  // ...
}
Run Code Online (Sandbox Code Playgroud)

这是堆栈跟踪:

Error: Firebase: No Firebase App '[DEFAULT]' has been created - call Firebase App.initializeApp() (app/no-app).
    at …
Run Code Online (Sandbox Code Playgroud)

javascript firebase angularfire2 angular

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

ionic Angularfire 使用 v9 和实时数据库升级 NullInjectorError

我正在尝试为我的离子应用程序使用 Angular 12 和 Firebase 最新的模块化 SDK。我正在使用实时数据库,很难找到我需要在数据处理部分进行的更改。

下面是我的新 app.module.ts

import { AngularFireModule } from '@angular/fire/compat';
import { AngularFireDatabaseModule, AngularFireDatabase } from '@angular/fire/compat/database';


imports: [

   AngularFireModule.initializeApp(firebaseConfig),
    AngularFireDatabaseModule,

]
Run Code Online (Sandbox Code Playgroud)

数据服务文件如下所示

import { AngularFireDatabase } from '@angular/fire/compat/database';
  

constructor(public db: AngularFireDatabase) { }

getVendor(){
    return new Promise((resolve, reject) =>
    {
      this.db.object("config").valueChanges().subscribe(
        (res) => {
                    //console.log(res); 
                    resolve(res)},
        (err) => { 
                    console.log("hitting error:" + err); reject(err)
                }
      )
  })
  }
Run Code Online (Sandbox Code Playgroud)

但是,在运行时我看到以下错误

[error] - ERROR {"name":"NullInjectorError","ngTempTokenPath":null,"ngTokenPath":["CoreService","SBDataService","AngularFireDatabase","InjectionToken angularfire2.app.options","InjectionToken angularfire2.app.options","InjectionToken angularfire2.app.options"]}
Run Code Online (Sandbox Code Playgroud)

我的 package.json 是

{
  "name": "xxx",
  "scripts": { …
Run Code Online (Sandbox Code Playgroud)

firebase ionic-framework firebase-realtime-database angularfire2 angular

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

Angular 16 启用IndexedDbPersistence

我已经设法让 @angular/fire 在 Angular 独立应用程序中工作,但我正在尝试像过去一样打开离线功能,现在我看到它已enableIndexedDbPersistence被标记为已弃用。它建议如下:

该功能将在未来的主要版本中删除。相反,将 FirestoreSettings.cache 设置为 IndexedDbLocalCache 的实例以打开 IndexedDb 缓存。当 FirestoreSettings.cache 已指定时调用此函数将引发异常。

我已经阅读了通常可以很好地解释如何使用 @angular/fire 的文档(https://firebase.google.com/docs/firestore/manage-data/enable-offline),但我没有看到关于做什么的任何明显指示。文档显示了如何使用传递到调用中的选项参数initializeFirestore,但 Angular 应用程序似乎没有在外部使用此方法(从开发人员的角度来看)。

我目前拥有的是以下内容:

export const appConfig: ApplicationConfig = {
  providers: [
    provideRouter(routes),
    provideAnimations(),
    provideServiceWorker('ngsw-worker.js', {
      enabled: !isDevMode(),
      registrationStrategy: 'registerWhenStable:30000',
    }),
    importProvidersFrom(
      provideFirebaseApp(() => 
        initializeApp({
          // ... my info
        })
      ),
      provideAuth(() => getAuth()),
      provideFirestore(() => {
        const firestore = getFirestore();
        enableIndexedDbPersistence(firestore); // Marked as deprecated :(
        return firestore;
      }),
      provideStorage(() => getStorage())
    ),
  ],
};
Run Code Online (Sandbox Code Playgroud)

angularfire angularfire2 angular angularfire2-offline

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

"错误"类型中不存在属性"代码"

我如何访问Error.code属性?我得到一个Typescript错误,因为属性'code'在'Error'类型上不存在.

this.authCtrl.login(user, {
   provider: AuthProviders.Password,
   method: AuthMethods.Password
}).then((authData) => {
    //Success
}).catch((error) => {
   console.log(error); // I see a code property
   console.log(error.code); //error
})
Run Code Online (Sandbox Code Playgroud)

或者有另一种方法来制作自定义错误消息吗?我想用另一种语言显示错误.

firebase typescript angularfire2 angular

4
推荐指数
2
解决办法
2744
查看次数