【问题标题】:ionic runtime error - zone already loaded离子运行时错误 - 区域已加载
【发布时间】:2018-10-16 23:29:07
【问题描述】:

我只是想使用 ionic 3 + firebase 身份验证。我遵循了最新的指南、youtube、文档,但在运行“离子服务”时我总是遇到这个问题:

Error: Zone already loaded.
    at http://localhost:8100/build/vendor.js:117672:15
    at http://localhost:8100/build/vendor.js:118284:3
    at FUNCTION (http://localhost:8100/build/vendor.js:117649:10)
    at Object.<anonymous> (http://localhost:8100/build/vendor.js:117652:2)
    at Object.<anonymous> (http://localhost:8100/build/vendor.js:120702:30)
    at __webpack_require__ (http://localhost:8100/build/vendor.js:55:30)
    at Object.defineProperty.value (http://localhost:8100/build/vendor.js:69145:66)
    at __webpack_require__ (http://localhost:8100/build/vendor.js:55:30)
    at Object.<anonymous> (http://localhost:8100/build/vendor.js:117167:72)
    at __webpack_require__ (http://localhost:8100/build/vendor.js:55:30)

Ionic Framework: 3.9.2
Ionic App Scripts: 3.1.9
Angular Core: 5.2.10
Angular Compiler CLI: 5.2.10
Node: 9.11.1
OS Platform: Windows 8.1
Navigator Platform: Win32
User Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36

我已经搜索了所有内容,但没有任何帮助。

我已经做过的事情:

  1. 我关注此链接"Runtime Error Zone already loaded" in ionic 3 中的所有内容,但它并没有解决我的问题
  2. 我试图删除“导入区..”但找不到它。搜索了整个文件,但无法精细导入区域。我从这个链接得到How do I determine what zone is already loaded?

我现在找不到任何解决方案。感谢您提出任何建议。

我的 app.module.ts 文件

import { RegisterPage } from './../pages/register/register';
import { LoginPage } from './../pages/login/login';
import { CollectionPage } from './../pages/collection/collection';
import { BrowserModule } from '@angular/platform-browser';
import { ErrorHandler, NgModule } from '@angular/core';
import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular';

import { MyApp } from './app.component';
import { HomePage } from '../pages/home/home';
import { ListPage } from '../pages/list/list';

import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';

import { AngularFireModule } from 'angularfire2';
import { AngularFireAuthModule } from 'angularfire2/auth';

const firebaseAuth = {
  apiKey: "Axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  authDomain: "fxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  databaseURL: "hxxxxxxxxxxxxxx",
  projectId: "fxxxxxxxxxxxxx",
  storageBucket: "firxxxxxxxxxxxx",
  messagingSenderId: "xxxxxxxxx"
  };

@NgModule({
  declarations: [
    MyApp,
    HomePage,
    CollectionPage,
  ],
  imports: [
    BrowserModule,
    IonicModule.forRoot(MyApp),
    AngularFireModule.initializeApp(firebaseAuth),
    AngularFireAuthModule

  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    HomePage,
    CollectionPage,
  ],
  providers: [
    StatusBar,
    SplashScreen,
    {provide: ErrorHandler, useClass: IonicErrorHandler}
  ]
})
export class AppModule {



}

我的 register.html 文件

<ion-header>

  <ion-navbar>
    <ion-title>Register</ion-title>
  </ion-navbar>

</ion-header>


<ion-content padding>

    <ion-list>

        <ion-item>
          <ion-label>Username</ion-label>
          <ion-input type="text" value=""></ion-input>
        </ion-item>

        <ion-item>
          <ion-label>Password</ion-label>
          <ion-input type="password" value=""></ion-input>
        </ion-item>

      </ion-list>

      <div padding>
        <button ion-button color="primary" block (click)="registerUser()">Register</button>
      </div>

</ion-content>

我的 register.ts 文件

import { Component, ViewChild } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { AngularFireAuth } from 'angularfire2/auth';

@IonicPage()
@Component({
  selector: 'page-register',
  templateUrl: 'register.html',
})
export class RegisterPage {

  @ViewChild('username') user;
  @ViewChild('password') password;

  constructor(private fire: AngularFireAuth, public navCtrl: NavController, public navParams: NavParams) {
  }

  ionViewDidLoad() {
    console.log('ionViewDidLoad RegisterPage');
  }

  registerUser() {
    this.fire.auth.createUserWithEmailAndPassword(this.user.value, this.password.value)
    .then(data => {
      console.log('got data ', data);
    })
    .catch(error => {
      console.log('got an error ', error);
    });
    console.log('Would register user with ', this.user.value, this.password.value);
  }

}

【问题讨论】:

  • 你找到解决办法了吗?
  • @QuentinIcky 请参阅下面的答案。它可能会有所帮助

标签: firebase ionic-framework


【解决方案1】:

我今天遇到了确切的问题。证明了angularfire2

的问题

你可以在github上找到问题:Runtime Error Zone already loaded

一旦我回滚到 rc4,一切正常,希望对您有所帮助。

npm install angularfire2@5.0.0-rc.4

【讨论】:

  • 它确实有助于摆脱该区域,但是当我尝试注册新的用户名和密码时发生了新错误
  • 我想你已经回答了我的问题,我会绿你的。但请随时再次回答
  • 新问题是“Runtime Error Cannot read property 'value' of undefined”
  • @Zubelius 您需要将ViewChild 与您的用户名和密码输入绑定
  • 谢谢。我从一开始就关注视频并且它有效。我想我错过了其他视频中的一些代码,因为我直接跳到了 ionic + firebase 部分:D
猜你喜欢
  • 2018-10-09
  • 2018-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多