2016-10-11 5 views
3

Попытка получить список в актуальном состоянии с содержимым базы данных firebase.NativeScript Angular 2 Firebase list не работает

Как-то это не работает, я использую плагин firebase из вихревого verbruggen. Плагин работает, но я не могу его отобразить в списке.

home.component.ts

import { Component, ElementRef, OnInit, ViewChild } from "@angular/core"; 
import firebase = require("nativescript-plugin-firebase"); 

@Component({ 
    selector: "home", 
    templateUrl: "pages/home/home.component.html" 
}) 
export class HomeComponent implements OnInit { 

    meting: Array<Object> = []; 

    ngOnInit() { 
    this.fbGetData(); 
    } 

    public onItemTap(args) { 
     console.log("------------------------ ItemTapped: " + args.index); 
    } 

    fbGetData(){ 
    var onChildEvent = (result) => { 
    console.log("Value: " + JSON.stringify(result.value)); // <-- works 
    this.meting.unshift(result.value); 
    }; 
    // listen to changes in the /users path 
    firebase.addChildEventListener(onChildEvent, "/user0").then(
    (listenerWrapper) => { 
     var path = listenerWrapper.path; 
     var listeners = listenerWrapper.listeners; // an Array of listeners added 
     // you can store the wrapper somewhere to later call 'removeEventListeners' 
    } 
); 
    } 
} 

home.component.html

<ListView [items]="meting" (itemTap)="onItemTap($event)"> 
    <template let-item="item" let-i="index" let-odd="odd" let-even="even"> 
     <StackLayout [class.odd]="odd" [class.even]="even"> 
      <Label [text]='"Week: " + i'></Label> 
      <Label [text]='"Gewicht: " + item.gewicht + ", Middel: " + item.middel + ", Heup: " + item.heup'></Label> 
     </StackLayout> 
    </template> 
</ListView> 

firebase база данных:

user0 
    week0 
     gewicht: 86 
     heup: 78 
     middel: 78 
    week1 
     gewicht: 85 
     heup: 76 
     middel: 74 

ответ

0

Когда я использую свой fbGetData() функцию в своей программе работы , Я не уверен, насколько вы новичок в firebase, но первое, что я хочу проверить, - это консоль firebase в базе данных, есть вкладка правил. Здесь вы должны ввести правила чтения и записи. Вы можете найти документацию at this firebase link. для этих правил существует иерархия. Поэтому важно понять их. Это может легко быть тем, что блокирует ваш код.

способ проверить это, чтобы установить свои правила следующие:

{ 
    "rules": { 
    "user0": { 
     ".read": true, 
     ".write": true 
    } 
    } 
} 

Это даст чтения и доступ к узлу «Пользователь0» писать. Вы не хотите использовать этот код в разработке, тогда как любой может читать или записывать ваши данные.

для доступа к корневому узлу просто добавьте свои правила чтения и записи в корневой узел следующим образом.

{ 
    "rules": { 
    ".read": true, 
    ".write": true 
    } 
} 

Если не по этой причине, дайте мне знать.

Смежные вопросы