संपत्ति 'फायरबेस' प्रकार {उत्पादन: बूलियन पर मौजूद नहीं है; }


80

इसलिए मैं फायरबेज और हेरोकू दोनों के उत्पादन के लिए अपने कोणीय 4 ऐप को बनाने और तैनात करने की कोशिश कर रहा था, लेकिन मैं इस त्रुटि के पार आया हूं:

ERROR इन / यूजर्स / ... / ... (57,49): प्रॉपर्टी 'फायरबेस' का अस्तित्व 'प्रकार' पर नहीं है: बूलियन; } '।

यह तब होता है जब मैं चलाता हूं ng build --prod, और मेरे परिनियोजन सर्वर पूरी तरह से ठीक काम कर रहे हैं। यहाँ संदर्भ के लिए मेरी app.module.ts फ़ाइल है:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { AngularFireModule } from 'angularfire2';
import { AngularFireDatabaseModule } from 'angularfire2/database';
import { Ng2ScrollimateModule } from 'ng2-scrollimate';
import { Ng2PageScrollModule } from 'ng2-page-scroll';

import { HttpModule } from '@angular/http';
import { trigger, state, style, animate, transition, keyframes } from '@angular/animations';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { environment } from '../environments/environment';

import { AppComponent } from './app.component';

import { LogoComponent } from './logo/logo.component';
import { InfoComponent } from './info/info.component';
import { AboutComponent } from './about/about.component';
import { DividerComponent } from './divider/divider.component';
import { ProficienciesComponent } from './proficiencies/proficiencies.component';
import { ProficiencyComponent } from './proficiency/proficiency.component';
import { PortfolioComponent } from './portfolio/portfolio.component';
import { ProjectComponent } from './project/project.component';
import { ResumeComponent } from './resume/resume.component';
import { FooterComponent } from './footer/footer.component';
import { ContactComponent } from './contact/contact.component';
import { LoadingComponent } from './loading/loading.component';

@NgModule({
  declarations: [
    AppComponent,
    LogoComponent,
    InfoComponent,
    AboutComponent,
    DividerComponent,
    ProficienciesComponent,
    ProficiencyComponent,
    PortfolioComponent,
    ProjectComponent,
    ResumeComponent,
    FooterComponent,
    ContactComponent,
    LoadingComponent,
  ],
  imports: [
    BrowserModule,
    FormsModule,
    HttpModule,
    BrowserAnimationsModule,
    AngularFireModule.initializeApp(environment.firebase),
    AngularFireDatabaseModule,
    Ng2ScrollimateModule,
    Ng2PageScrollModule.forRoot(),
  ],
  providers: [],
  bootstrap: [AppComponent],
})
export class AppModule {}

environment.prod.ts

export const environment = {
  production: true
};

पर्यावरण

export const environment = {
  production: true,
  firebase: {
    apiKey: '...',
    authDomain: 'project.firebaseapp.com',
    databaseURL: 'https://project.firebaseio.com',
    projectId: 'project',
    storageBucket: 'project.appspot.com',
    messagingSenderId: '...',
  },
};

संभव समाधान के लिए StackOverflow और GitHub को परिमार्जन करने के बाद, ऐसा कोई भी डेवलपर नहीं लगता है जिसने इस सटीक त्रुटि का सामना किया हो और अपने निष्कर्षों को प्रकाशित किया हो, इसलिए मैं सोच रहा था कि क्या कोई जानता है कि इस मुद्दे को हल करने के बारे में कैसे जाना जाए। पहले से बहुत - बहुत धन्यवाद!


आपका environmentआयात कैसा दिखता है?
एको

@echonax मुझे अपने कोड के साथ आपके लिए प्रश्न अपडेट करने दें।
एंथनी क्रिवोनोस

जवाबों:


197

जब आप ng build --prodकोणीय-क्ली चलाते हैं तो environment.prod.tsफ़ाइल का उपयोग करेंगे और आपके environment.prod.tsफ़ाइलों के environmentचर में firebaseफ़ील्ड नहीं है इसलिए आपको अपवाद मिल रहा है।

इसमें फ़ील्ड जोड़ें environment.prod.ts

export const environment = {
  production: true,
  firebase: {
    apiKey: '...',
    authDomain: 'project.firebaseapp.com',
    databaseURL: 'https://project.firebaseio.com',
    projectId: 'project',
    storageBucket: 'project.appspot.com',
    messagingSenderId: '...',
  },
};

12
आप, श्रीमान, एक जीवन रक्षक हैं। मुझे बस इतना करना था कि मैं अपने environment.tsकोड को अपनी environment.prod.tsफाइल में बदल दूं । फिर, मैं बस भाग गया: ng build --prodऔर firebase deploy
एंथोनी क्रिवोनोस

1
@AnthonyKrivonos खुशी है कि मैं मदद कर सकता है :-)
एको

मैं सहमत हूं, अब मुझे फायरबैस मिलता है .... का हिस्सा नहीं है, जबकि मैंने इसे environement में जोड़ा है
user7082181

6

मेरा दृष्टिकोण एक के साथ सामान्य पर्यावरण वस्तु को विलय करना है। यहाँ मेरा पर्यावरण है

import { environment as common } from './environment';

export const environment = {
  ...common,
  production: true
};

अतः सामान्य पर्यावरण वस्तु अन्य सभी वातावरणों के लिए एक सामान्य डिफ़ॉल्ट के रूप में कार्य करती है।


यह दृष्टिकोण मुझे अच्छा लग रहा है, लेकिन निश्चित नहीं है कि कोणीय 7 सीएल चेतावनी क्यों दिखाता है, ** सर्कुलर निर्भरता में चेतावनी का पता लगाया: src \ environment \ environment.ts -> src \ environment \ environment.ts **
user2243747

3

मुझे कोड में डुप्लिकेट से नफरत है
इसलिए चलो environments/firebase.tsसामग्री के साथ नाम की एक अलग फ़ाइल बनाएं

export const firebase = {
    //...
};

उपयोगितायें

import {firebase} from '../environments/firebase';
//...
AngularFireModule.initializeApp(firebase)

मेरे लिए यह सब स्पष्ट है


तो यह इस समस्या को कैसे दूर करेगा कि जब एनजी बिल्ड -प्रोड कहा जाता है, तो इसमें यह फ़ाइल शामिल होगी और जब एनजी सर्व को कॉल किया जाएगा, तो यह दूसरे को कॉल करेगा?
एको

@echonax हाँ मैं उस में देख main.<hash>.jsफ़ाइल
Vlad

मुझे नहीं पता कि इसका क्या मतलब है, लेकिन मुझे इसे इस तरह से रखना चाहिए; जब ओपी एनजी सर्व करता है, तो कोणीय-क्ली की तलाश होगी environment.tsऔर जब ng build --prodबुलाया जाएगा, तो कोणीय-क्ली की तलाश होगी environment.prod.ts। इसे आपके उत्तर की तरह करने से, ठेस और विकास पर्यावरण दोनों एक ही विन्यास का उपयोग करेंगे।
एको

1

मुझे वही त्रुटि मिली क्योंकि मैंने 'फायरबेस' को 'फायरबेस' के रूप में याद किया था

firebas: {apiKey: "...", odDomain: "project.firebaseapp.com", databaseURL: " https://project.firebaseio.com ", projectId: "project", storageBetet: "project.appspot.com" , मैसेजिंग SenderId: "..."}


-12

सुनिश्चित करें कि firebaseऔर के बीच कोई अंतर नहीं है:

यानी यह होना चाहिए firebase:, नहीं firebase :


मैं देख रहा हूं कि कुछ लोगों ने इस जवाब को वोट दिया। हालांकि, मेरे मामले में इस जवाब ने उस मुद्दे को तय कर दिया जो मैं सामना कर रहा था। धन्यवाद!
एनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.