Включение ионного проекта angularfire2 в другой ионный проект - PullRequest
0 голосов
/ 13 июня 2019

У нас есть приложение, которое использует angularfire2 для подключения к базе данных Firebase Realtime. App.module.ts выглядит ниже


import { AngularFireModule } from '@angular/fire';
import { AngularFireDatabaseModule } from '@angular/fire/database';

export const firebaseConfig = {
  apiKey: "XXXX-XXX-XX",
    authDomain: "xxxx.firebaseapp.com",
    databaseURL: "https://xxx.firebaseio.com",
    projectId: "xxx",
    storageBucket: "xxx.appspot.com",
    messagingSenderId: "xxxx",
    appId: "1:xxxxxx:web:xxxxxx"
};

@NgModule({
  declarations: [
    AppComponent
  ],
  entryComponents: [],
  imports: [
    AngularFireModule.initializeApp(firebaseConfig),
    AngularFireDatabaseModule,
    BrowserModule, 
    IonicModule.forRoot(), 
    AppRoutingModule,
  ],
  providers: [
    { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
  ],
  bootstrap: [AppComponent]
})
export class AppModule {}

Существует один сервис, как показано ниже

import { Injectable } from '@angular/core';
import { AngularFireDatabase } from '@angular/fire/database';
import { MitAnalyticsObject } from './model/mit-analytics-object.model';

@Injectable({
  providedIn: 'root'
})
export class MitBotAnalyticsService {

  constructor(public db:AngularFireDatabase) { }

  log(orgName:string, sessionId:string, intent:string, lastUtterance:string, msg:string, time:number, sender:string, os:string, device:string, uid:string){

    var anaObj = new MitAnalyticsObject(msg, time, sender, os, device, uid, sessionId, intent, lastUtterance)

    console.log("Logging obj:" + JSON.stringify(anaObj))
    return new Promise((resolve, reject) => {
      this.db.list(orgName + "/messages/").push(anaObj).then
      (
        (res:any) => {
          resolve(res)
        }
      ),
      err => { 
        reject(err)
      }
  })
  }
}

и простое определение объекта, как показано ниже:

export class MitAnalyticsObject {
    private _msg:string
    private _time:number
    private _sender:string
    private _os:string
    private _device:string
    private _uid:string //userid or username
    private _sessionId:string
    private _intent:string
    private _lastUtterance:string

    constructor(msg:string, time:number, sender:string, os:string, device:string, uid:string, sessionId:string, intent:string, lastUtterance:string){
        this._msg = msg
        this._time = time
        this._sender = sender
        this._os = os
        this._device = device
        this._uid = uid
        this._sessionId = sessionId
        this._intent = intent
        this._lastUtterance  = lastUtterance
    }
}

Нет компонента пользовательского интерфейса или чего-либо еще. Он добавлен в пустой ионный проект, поэтому в нем есть компонент пустой страницы, который мне на самом деле не нужен.

Требуется иметь возможность преобразовывать вышеуказанный проект в повторно используемую часть, которую я могу просто импортировать или включить и использовать как библиотеку.

Хост-проект будет только ионным приложением.

Я никогда не делал этого так, задаваясь вопросом, как этого достичь?

...