Получите данные JSON из Firebase и сохраните их в папке в Ionic Project - PullRequest
0 голосов
/ 24 мая 2018

У меня есть функциональное приложение, в котором провайдер берет данные из assets / data / data.json

Я хочу переместить data.json в firebase, и всякий раз, когда пользователь входит в систему / обновляется, я хочу обновитьdata.json с данными из Firebase (целое дерево, оно не очень большое).Причина в том, что я хочу использовать один и тот же код провайдера без каких-либо изменений:

@Injectable()
export class ConferenceData {
  data: any;


  constructor(public http: Http, public user: UserData) { }

  load(): any {
    if (this.data) {
      return Observable.of(this.data);
    } 
    else {
       return this.http.get('listRef')
        .map(this.processData, this); 
  }
}

  processData(data: any) {
    this.data = data.json();

    this.data.tracks = [];

    this.data.schedule.forEach((day: any) => {

      day.groups.forEach((group: any) => {

        group.sessions.forEach((session: any) => {
          session.speakers = [];
          if (session.speakerNames) {
            session.speakerNames.forEach((speakerName: any) => {
              let speaker = this.data.speakers.find((s: any) => s.name === speakerName);
              if (speaker) {
                session.speakers.push(speaker);
                speaker.sessions = speaker.sessions || [];
                speaker.sessions.push(session);
              }
            });
          }

          if (session.tracks) {
            session.tracks.forEach((track: any) => {
              if (this.data.tracks.indexOf(track) < 0) {
                this.data.tracks.push(track);
              }
            });
          }
        });
      });
    });

    return this.data;
  }

и, в основном, сохранить все остальное без изменений (за исключением импорта библиотек Firebase и обновления data.json).

Есть ли способ сделать это?

...