मैं कोणीय का उपयोग कर अपने आयोनिक अनुप्रयोग में एक Firebase डेटाबेस को शामिल करने की कोशिश कर रहा हूँ। मैं AngularFire github पेज (https://github.com/angular/angularfire2) लेकिन जब मैं वास्तव में एप्लिकेशन चलाता हूं तो मुझे एक शून्य प्रतिक्रिया मिलती रहती है। मैं db.object विधि (db.object('item')) के इनपुट पर भी भ्रमित हूं। 'आइटम' वास्तव में क्या दर्शाता है?

यह मेरी app.component.ts फ़ाइल है

import { Component } from '@angular/core';
import { Platform } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx';
import { MenuController } from '@ionic/angular';
import { AngularFireDatabase } from '@angular/fire/database';
import { Observable } from 'rxjs';


@Component({
  selector: 'app-root',
  templateUrl: 'app.component.html'
})
export class AppComponent {

item: Observable<any>;
example: Observable<any>;

  constructor(
    private platform: Platform,
    private splashScreen: SplashScreen,
    private statusBar: StatusBar,
    private menu: MenuController,
    private db: AngularFireDatabase
  ){
    this.item = db.object('item').valueChanges();
    this.initializeApp();
  }



  initializeApp() {
    this.platform.ready().then(() => {
      this.statusBar.styleDefault();
      this.splashScreen.hide();
    });
  }

  close(){
    this.menu.close();
  }
}

यह मेरी app.component.html फ़ाइल है

<ion-app>
    <ion-menu side="start" menuId="first">
      <ion-header>
        <ion-toolbar color="primary">
          <ion-title>Hi</ion-title>
        </ion-toolbar>
      </ion-header>
      <ion-content>
        <ion-list>
          <ion-item [routerLink]="['/orders']" routerLinkActive="active" (click)="close()" >My Orders</ion-item>
          <ion-item [routerLink]="['/apps']" routerLinkActive="active" (click)="close()">My</ion-item>
          <ion-item [routerLink]="['/pres']" routerLinkActive="active" (click)="close()">My</ion-item>
          <ion-item>{{ (item | async)?.name }}</ion-item>
        </ion-list>
        <li class="text" *ngFor="let item of items | async">
            {{ item | json }}
        </li>
      </ion-content>
    </ion-menu>
    <ion-router-outlet main></ion-router-outlet>
</ion-app>

यह मेरी app.module.ts फ़ाइल है

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RouteReuseStrategy } from '@angular/router';
import { FormsModule } from '@angular/forms';
import { IonicModule, IonicRouteStrategy } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx';
import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module';
import { AngularFireModule } from '@angular/fire';
import { environment } from '../environments/environment';
import { AngularFirestoreModule } from '@angular/fire/firestore';
import { AngularFireDatabaseModule } from '@angular/fire/database';
import { AngularFireAuthModule } from '@angular/fire/auth';




@NgModule({
  declarations: [AppComponent],
  entryComponents: [],
  imports: [BrowserModule, FormsModule, IonicModule.forRoot(), AppRoutingModule, AngularFireModule.initializeApp(environment.firebase), AngularFireDatabaseModule, AngularFireAuthModule],
  providers: [
    StatusBar,
    GooglePlus,
    SplashScreen,
    { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
  ],
  bootstrap: [AppComponent]
})
export class AppModule {}

मेरे फायरबेस डेटाबेस की छवि। यह वही है जो मेरे ऐप नाम के ठीक नीचे देखा जा सकता है: https://pasteboard.co/HTxY5eC.png

0
Kiran 26 पद 2018, 20:04

1 उत्तर

सबसे बढ़िया उत्तर

हाय किरण और SO में आपका स्वागत है। आपने कितनी जानकारी प्रदान की, इस पर आप बहुत आगे निकल गए, बल्कि क्षमा करने के बजाय सुरक्षित रहें - है ना?

उदाहरण में आप देख रहे हैं item डेटाबेस में नोड है। मुझे लगता है कि आप फायरबेस के लिए भी काफी नए हैं, इसलिए मैं कुछ भी नहीं मानूंगा.... क्या आपने अभी तक फायरबेस कंसोल के साथ खेला है? (https://console.firebase.google.com/project/PROJECT_NAME /डेटाबेस/PROJECT_NAME/डेटा) वह दृश्य जो आपको अपने रीयल-टाइम डेटाबेस की सामग्री को देखने की अनुमति देता है? वहां चारों ओर खेलें और डेटाबेस में कुछ "नोड्स" जोड़ें। जब आप डेटा जोड़ते हैं, संपादित करते हैं और निकालते हैं, तो उनके पास अच्छी तरह से समन्वित रंग होते हैं... बहुत बढ़िया, है ना? अब अपने परीक्षण नोड्स को मिटा दें और "आइटम" नाम का एक नोड बनाएं, और कुछ चाइल्ड नोड्स जोड़ें।

आपके कोड में this.item = db.object('item').valueChanges(); आपके डेटाबेस के item नोड में संग्रहीत जानकारी में परिवर्तन को सुनता है... और इसे this.item वेरिएबल में चिपका देता है। आपकी HTML फ़ाइल this.item चर की किसी भी सामग्री पर लूप करती है और इसे *ngFor="let item of items | async के माध्यम से प्रदर्शित करती है

इतनी लंबी कहानी छोटी - आपका मूल प्रश्न ... item कुछ खास नहीं है - इसे आप अपना डेटाबेस नोड कहें। आपको null मिल रहा है क्योंकि अभी आप अपने DB में item के मिलान नाम के साथ एक नोड खो रहे हैं

0
JeremyW 26 पद 2018, 20:15