【问题标题】:Ionic - Runtime Error this.fba.logEvent(...).then is not a functionIonic - 运行时错误 this.fba.logEvent(...).then 不是函数
【发布时间】:2019-01-23 07:00:55
【问题描述】:

我正在使用 Ionic 和 Firebase。我已经创建了 firebase 项目,单击图标以“向您的 android 应用添加火”并按照步骤操作。

跟随。是我的html页面上的代码:

<ion-header>
  <ion-navbar>
    <ion-title>
      Ionic Blank
    </ion-title>
  </ion-navbar>
</ion-header>

<ion-content padding>
  Firebase Analytics
  <p>
    Click the button to log a custom event
  </p>
  <button ion-button full (click)="logClick()">Log event</button>
</ion-content>

以下代码在此页面的ts上:

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { EventLoggerProvider } from '../../providers/event-logger/event-logger';

@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {

  constructor(public navCtrl: NavController,
    public logger: EventLoggerProvider) {
  }

  logClick() {
    this.logger.logButton('homeButton',{ pram: "paramValue" })
}
}

跟随。代码在提供者中:

import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { FirebaseAnalytics } from '@ionic-native/firebase-analytics';

@Injectable()
export class EventLoggerProvider {

  constructor(public fba: FirebaseAnalytics) {
    console.log('Hello EventLoggerProvider Provider');
  }

  logButton(name:string,value:any){
    this.fba.logEvent(name, { pram:value })
    .then((res: any) => {console.log(res);})
    .catch((error: any) => console.error(error));
  }
}

我运行“ionic cordova run android”并在移动设备上启动了该应用程序,一切似乎都正常。但是,当我执行“离子服务”时,页面在浏览器中加载正常,但是当我单击按钮时,可能是什么原因导致它出现问题。错误?

Ionic - 运行时错误 this.fba.logEvent(...).then 不是函数

【问题讨论】:

  • 请分享您的 ts 文件,这对我来说似乎是错误的 this.fba.logEvent ,我认为您缺少的 analytics 主要是这样的 firebase.analytics.logEvent("MyClickEvent", { Action: "test" })
  • 编辑了问题并包含了所有代码,请注意在提供程序中正确使用。另请注意,移动设备上没有此类错误。仅在浏览器中的错误(离子服务)
  • Cordova 平台在 ionic serve 中不可用。插件不起作用。您可以在调用函数之前检查平台

标签: ionic-framework firebase-analytics


【解决方案1】:

现在看代码后更清楚了。

import { FirebaseAnalytics } from '@ionic-native/firebase-analytics';

@ionic-native 函数仅适用于真实设备或模拟器。否则会报错。

【讨论】:

  • 我在本机设备上检查应用程序时遇到同样的错误。你能猜出错误应该在哪里吗?唯一的区别是我从'@ionic-native/firebase-analytics/ngx' 导入了 FirebaseAnalytics,因为没有 ngx 我得到“找不到名称'FirebaseAnalytics'”。我使用我定义的“EventLoggerService”调用 logEvent 方法
猜你喜欢
  • 2018-11-04
  • 2018-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-14
  • 1970-01-01
  • 2019-12-26
相关资源
最近更新 更多