NullInjectorError: AngularFirestore के लिए कोई प्रदाता नहीं


129

मैं त्रुटि को ठीक करने में मदद की तलाश में कोणीय सीख रहा हूँ: मैं इस लिंक का अनुसरण कर रहा हूँ: https://github.com/angular/angularfire2/blob/master/docs/install-and-setup.md कोणीय छोटा बनाने के लिए angular2 और angularfirestore2 के साथ ऐप

लेकिन जब मैं एनजी हिट परोसता हूं तो मुझे ब्राउज़र कंसोल में नीचे की त्रुटि मिल रही है।

StaticInjectorError[AngularFirestore]: 
  StaticInjectorError[AngularFirestore]: 
    NullInjectorError: No provider for AngularFirestore!
    at _NullInjector.get (core.js:923)
    at resolveToken (core.js:1211)
    at tryResolveToken (core.js:1153)
    at StaticInjector.get (core.js:1024)
    at resolveToken (core.js:1211)
    at tryResolveToken (core.js:1153)
    at StaticInjector.get (core.js:1024)
    at resolveNgModuleDep (core.js:10585)
    at NgModuleRef_.get (core.js:11806)
    at resolveDep (core.js:12302)

मैंने इसे गुगली करने की कोशिश की, लेकिन सटीक समाधान नहीं मिला, मेरे लिए कुछ भी काम नहीं किया :(,

यहाँ मैंने क्या किया है: 1) स्थापित नोड संस्करण 8.9.1 2) npm स्थापित -g @ कोणीय / cli -> संस्करण 1.5.2 3) एनजी नए 'प्रोजेक्ट-नाम' 4) एनपीएम स्थापित करें angularfire2 firebase - save

यहाँ मेरे app.module.ts फ़ाइल हैं:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { AngularFireModule } from 'angularfire2';
import { environment } from '../environments/environment';

@NgModule({
  imports: [
    BrowserModule,
    AngularFireModule.initializeApp(environment.firebase)
  ],
  declarations: [ AppComponent ],
  bootstrap: [ AppComponent ]
})
export class AppModule {}

app.component.ts:

import { Component } from '@angular/core';
import { AngularFirestore } from 'angularfire2/firestore';
import { Observable } from 'rxjs/Observable';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'app';
  constructor(db: AngularFirestore) {}
}

environemnt.ts:

export const environment = {
  production: false,
  firebase: {
    apiKey: 'xxxxx',
    authDomain: 'aaaaaaa',
    databaseURL: 'bbbbbbbbbbbbbbbbbb',
    projectId: 'aaaaaaaaaaaaaa',
    storageBucket: 'aaaaaaaaaaaa',
    messagingSenderId: 'aaaaaaaaaaaaa'
  }
};

फिर एनजी सर्व करें, और मुझे उपरोक्त त्रुटि मिल रही है ...


जवाबों:


242

आप जोड़ना चाहिए providers: [AngularFirestore]में app.module.ts

@NgModule({
  imports: [
    BrowserModule,
    AngularFireModule.initializeApp(environment.firebase)
  ],
  declarations: [ AppComponent ],
  providers: [AngularFirestore],
  bootstrap: [ AppComponent ]
})
export class AppModule {}

AngularFirestore: ([ऑब्जेक्ट ऑब्जेक्ट];) के लिए सभी मापदंडों को हल नहीं कर सकते। यह त्रुटि फिर से ..
डेवलपर


1
अंत में यह ऊपर दिए गए लिंक के साथ काम करता है धन्यवाद @Sajeetharan
डेवलपर

1
मुझे ऐसा करने की आवश्यकता क्यों होगी, बजाय importआईएनजी के AngularFirestoreModule, जैसा कि प्रलेखन कहता है, जो संभवतः AngularFirestoreप्रदाता के रूप में घोषित करने सहित सभी चीजों का ध्यान रखता है।

1
मेरे लिए यह पहले से ही था, जो इसे हल किया गया था वह बस CTRL+Cथा ionic serveऔर इसे फिर से शुरू करें ... (अक्सर किसी कारण से कभी भी आयनिक 3 ..)
रिकी लेवी

25

मेरे पास एक ही मुद्दा था और नीचे हल है।

पुरानी सेवा कोड:

@Injectable()

अद्यतन किए गए सेवा कोड:

@Injectable({
  providedIn: 'root'
})

मुझे निम्नलिखित संदेश दिखाता है: "(टीएस) अपेक्षित 0 तर्क, लेकिन 1. मिला"
साइमन

1
नया providedInतर्क केवल कोणीय 6 और इसके बाद के संस्करण में उपलब्ध है।
जेम्स

9

खुला: ./src/app/app.module.ts
और शीर्ष पर Firebase मॉड्यूल आयात करें:

आयात { पर्यावरण } से '.. पर्यावरण / पर्यावरण ';
आयात { AngularFireModule } 'angularfire2' से; 'angularfire2 / firestore' से
{ AngularFirestoreModule } का आयात करें ;

और बहुत महत्वपूर्ण:
NgModule में 'आयात' को अपडेट करना याद रखें:

@NgModule({
  declarations: [
    AppComponent,
    OtherComponent // Add other components here
    ...
  ],
  imports: [
    BrowserModule,
    AngularFireModule.initializeApp(environment.firebase, 'your-APP-name-here'),
    AngularFirestoreModule
  ],
  ...
})

इसे आजमाओ, यह अब काम करेगा।
विस्तृत जानकारी के लिए angularfire2 प्रलेखन का पालन करें :
https://github.com/angular/angularfire2/blob/master/docs/install-and-setup.md
शुभकामनाएँ!


4

मेरे लिए अजीब बात यह थी कि मेरे पास प्रदाता था: [], लेकिन प्रदाता का उपयोग करने वाला HTML टैग वह था जो त्रुटि पैदा कर रहा था। मैं नीचे लाल बॉक्स की बात कर रहा हूँ: यहां छवि विवरण दर्ज करें

यह पता चला है कि मैं एक ही "कर्मचारी-list.component.ts" फ़ाइल नाम के साथ विभिन्न घटकों में दो वर्ग था और इसलिए परियोजना ठीक संकलित की गई थी, लेकिन संदर्भ सभी गड़बड़ थे।


2

AngularFirestoreModule.enablePersistence()आयात अनुभाग में जोड़ने से मेरी समस्या हल हो गई:

imports: [
    BrowserModule, AngularFireModule, 
    AngularFireModule.initializeApp(config),
    AngularFirestoreModule.enablePersistence()
]

2

मैंने इस समस्या को सिर्फ फायरस्टोर से दूर करके हल किया:

import { AngularFirestore } from '@angular/fire/firestore/firestore';

मेरे घटक फ़ाइल में। केवल उपयोग के रूप में:

import { AngularFirestore } from '@angular/fire/firestore';

यह आपकी समस्या भी हो सकती है।


1

के लिए AngularFire2 नवीनतम संस्करण

AngularFire2 स्थापित करें

$ npm install --save firebase @angular/fire

फिर app.module.ts फ़ाइल अपडेट करें

    import { BrowserModule } from '@angular/platform-browser';
    import { NgModule } from '@angular/core';

    import { AppComponent } from './app.component';
    import { FormsModule } from '@angular/forms';


    import { AngularFireModule } from '@angular/fire';
    import { AngularFireDatabaseModule } from '@angular/fire/database';
    import { environment } from '../environments/environment';
    import { AngularFirestoreModule } from '@angular/fire/firestore';


    @NgModule({
      declarations: [
        AppComponent
      ],
      imports: [
        BrowserModule,
        FormsModule,

        AngularFireModule.initializeApp(environment.firebase),
        AngularFirestoreModule,
        AngularFireDatabaseModule
      ],
      providers: [],
      bootstrap: [AppComponent]
    })
    export class AppModule { }

यहां FireStore CRUD ऑपरेशन ट्यूटोरियल देखें

यहां छवि विवरण दर्ज करें


1

अपना आयात बदलें:

import { AngularFirestore } from '@angular/fire/firestore/firestore';

इसके लिए :

import { AngularFirestore } from '@angular/fire/firestore';

इससे मेरी समस्या हल हो गई।


0

मुझे लगता है कि मेरे app.module के लिए ले लो। आयात के बाद यह काम किया जाना चाहिए

providers: [
    { provide: LocationStrategy, useClass: HashLocationStrategy },
    { provide: FirestoreSettingsToken, useValue: {} }
  ],

मेरा संस्करण:

Angular CLI: 7.2.4
Node: 10.15.0
Angular: 7.2.5
... common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.12.4
@angular-devkit/build-angular     0.12.4
@angular-devkit/build-optimizer   0.12.4
@angular-devkit/build-webpack     0.12.4
@angular-devkit/core              7.2.4
@angular-devkit/schematics        7.2.4
@angular/animations               8.0.0-beta.4+7.sha-3c7ce82
@angular/cdk                      7.3.2-3ae6eb2
@angular/cli                      7.2.4
@angular/fire                     5.1.1
@angular/flex-layout              7.0.0-beta.23
@angular/material                 7.3.2-3ae6eb2
@ngtools/webpack                  7.2.4
@schematics/angular               7.2.4
@schematics/update                0.12.4
rxjs                              6.3.3
typescript                        3.2.4
webpack                           4.28.4


0

मेरे Ionic ऐप में फायरबेस जोड़ने के दौरान मेरे पास एक ही मुद्दा था । समस्या को हल करने के लिए मैंने इन चरणों का पालन किया:

npm install @angular/fire firebase --save

मेरे app / app.module.ts में :

...
import { AngularFireModule } from '@angular/fire';
import { environment } from '../environments/environment';
import { AngularFirestoreModule, SETTINGS } from '@angular/fire/firestore';

@NgModule({
  declarations: [AppComponent],
  entryComponents: [],
  imports: [
    BrowserModule, 
    AppRoutingModule,
    AngularFireModule.initializeApp(environment.firebase),
    AngularFirestoreModule
  ],
  providers: [
    { provide: SETTINGS, useValue: {} }
  ],
  bootstrap: [AppComponent]
})

पहले हम SETTINGS के बजाय FirestoreSettingsToken का उपयोग करते थे। लेकिन वह बग सुलझ गया, अब हम SETTINGS का उपयोग करते हैं। ( लिंक )

मेरे अनुप्रयोग / सेवाओं / myService.ts में मैंने आयात किया है:

import { AngularFirestore } from "@angular/fire/firestore";

किसी कारण से vscode इसे "@ कोणीय / आग / फायरस्टार / फायरस्टार" के रूप में आयात कर रहा था; मैं इसे "@ कोणीय / आग / फायरस्टार" के लिए बदलने के बाद; मुद्दा सुलझ गया!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.