Ionic v3 with Firebase

Hi, I’m new to this, both forum and Ionic things. Well, I’m having some kinda trouble because I have configured Firebase database only to get data form to a token (only have token name, and token game) and it’s working fine. My problem is, I’m not showing the data to the user correctly, I mean, sometimes it work, and sometimes not. I’m making the database like:

- tokenmanagersystem
– tokens
— userId
---- tokenId

Sometimes it show in the screen the way I want, but when I try to log with some other account, it happens something and doesn’t show anymore on either accounts.

This is my tokens.html

<!-- This page is responsible for user tokens management -->


    <ion-title>Your Tokens</ion-title>


<ion-content padding>

		<ion-item-sliding *ngFor="let token of tokens | async">

			<ion-item-options side="left">

				<button ion-button color="secondary" (click)="editToken(token)">
					<ion-icon name="create"></ion-icon>

				<button ion-button color="danger" (click)="deleteToken(token.key)">
					<ion-icon name="trash"></ion-icon>




	<ion-fab bottom right>
		<button ion-fab (click)="newToken()"><ion-icon name="add"></ion-icon></button>


This is token.ts

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams, ModalController, ToastController } from 'ionic-angular';
import { Observable } from 'rxjs/Observable';

// pages
import { EditTokenPage } from '../edit-token/edit-token';

// providers
import { TokenServiceProvider } from '../../providers/token-service/token-service';

  selector: 'page-tokens',
  templateUrl: 'tokens.html',
export class TokensPage {

  tokens: Observable<any>;

  constructor(public navCtrl: NavController,
  	public navParams: NavParams,
  	private modalCtrl: ModalController,
    private toastCtrl: ToastController,
  	private tokenService: TokenServiceProvider) {
    this.tokens = this.tokenService.getAll();

  private newTokenPage(token: any){
  	let modal = this.modalCtrl.create(EditTokenPage, {token: token});


  editToken(token: any){

  deleteToken(key: string){
      this.toastCtrl.create({ message: "Ficha removida com sucesso", duration: 3000}).present();
    }).catch(error => {
      this.toastCtrl.create({ message: "Erro ao remover sua ficha", duration: 3000}).present();


This is the token-service (provider)

// this provider is responsible for the basic tokens CRUD

import { Injectable } from '@angular/core';
import { map } from 'rxjs/operators';

// firebase database
import { AngularFireDatabase } from 'angularfire2/database';
import { AngularFireAuth } from 'angularfire2/auth';

export class TokenServiceProvider {

	private PATH = '/tokens/';
	private USER:string;

  constructor(private db: AngularFireDatabase,
  	private fireAuth: AngularFireAuth){
  	this.fireAuth.authState.subscribe(user => {
      if(user) this.USER = user.uid+"/";

  	return this.db.list(this.PATH+this.USER)
  	.snapshotChanges().pipe(map(changes => {
  		return => ({
  			// data
  			key: token.payload.key,

  get(key: string){
  	return this.db.object(this.PATH+this.USER+key).snapshotChanges()
  	.pipe(map(token =>({
  				// data
  				key: token.payload.key,

  save(token: any){
  	return new Promise((resolve, reject) => {
  		// if exists is an update
  			.update(token.key, {
  				// data
  			}).then(() => resolve())
  			.catch((e) => reject(e));
  		} // if does not exist, is a push
  				// data
  			}).then(() => resolve());

  remove(key: string){
  	return this.db.list(this.PATH+this.USER).remove(key);