2016-06-01 2 views
0

Я создаю мобильное приложение, используя NativeScript с AngularJS2 & TypeScript. Для использования Firebase в качестве базы данных для хранения данных.TypeError: Невозможно прочитать свойство «firebase» неопределенного в приложении NativeScript

Для использования firebase в NativeScript Я судится следующую библиотеку - https://github.com/EddyVerbruggen/nativescript-plugin-firebase

Вот мой код -

import {Component} from "@angular/core"; 
import {User} from "./shared/user/user"; 
import {UserService} from "./shared/user/user.service"; 
import {HTTP_PROVIDERS} from "@angular/http"; 
var firebase = require("nativescript-plugin-firebase"); 

@Component({ 
    selector: "my-app", 
    providers: [UserService, HTTP_PROVIDERS], 
    templateUrl: "pages/login/login.html", 
    styleUrls: ["pages/login/login-common.css", "pages/login/login.css"] 
}) 

export class AppComponent { 
    user: User; 
    isLoggingIn = true; 

    constructor(private _userService: UserService) { 
     this.user = new User(); 
    } 

    submit() { 
     if (this.isLoggingIn) { 
      this.login(); 
     } else { 
      this.signUp(); 
     } 
    } 

    login() { 
     // TODO: Define 
     console.log('Clicked on Login button'); 

     firebase.init({ 
      persist: true // Allow disk persistence. Default false. 
     }).then(
      function (instance) { 
       console.log("firebase.init done"); 
      }, 
      function (error) { 
       console.log("firebase.init error: " + error); 
      } 
     ); 
    } 

    signUp() { 
     this._userService.register(this.user); 
    } 

    toggleDisplay() { 
     this.isLoggingIn = !this.isLoggingIn; 
    } 
} 

Метод «Логин()» становится вызывается, когда пользователь нажимает на «Войти в ". Я вставил этот код firebase для проверки, что все в порядке с firebase или нет.

Но при вызове «Login()» появляется следующая ошибка.

JS: Clicked on Login button 
JS: Error in firebase.init: TypeError: Cannot read property 'firebase' of undefined 
JS: firebase.init error: TypeError: Cannot read property 'firebase' of undefined 

Я понимаю, эта ошибка показывается, потому что я не правильно вставить, что «firebase» зависимость внутри класса. Но, поскольку я новичок в TypeScript, я не могу понять .. как это сделать.

Нужна помощь

Отредактировано -

Getting следующее сообщение об ошибке от VS Кодекса при использовании import * as firebase from "nativescript-plugin-firebase"; вместо var firebase = require("nativescript-plugin-firebase");

enter image description here

+0

Запустили ли вы 'tns plugin add nativescript-plugin-firebase'? –

+0

Если вы изменили свой запрос на var varbase = require («nativescript-plugin-firebase»), 'to' import * в качестве firebase из «nativescript-plugin-firebase», тогда вы должны получить IntelliSense, который может помочь вам отладить. –

+0

Да, я добавил плагин в мое приложение с помощью этой команды '' 'tns plugin add nativescript-plugin-firebase''' – mi6crazyheart

ответ

0

import firebase = require("nativescript-plugin-firebase"); в reference.d.ts добавить /// <reference path="./node_modules/nativescript-plugin-firebase/firebase" /> (без расширения)

+0

Когда я делаю это в файле '' 'reference.d.ts''', я получаю сообщение об ошибке« файл не найден »с полным путем – mi6crazyheart

+0

Должно быть, проблема в расположении файла. Обязательно ссылаться на этот файл в файле 'reference.d.ts'. –

Смежные вопросы