AngularFireDatabase列表函数未在ios ionic上调用

时间:2017-07-18 01:50:02

标签: angular firebase ionic-framework firebase-realtime-database angularfire2

我正在尝试使用Ionic和AngularFireDatabase进行最基本的检索。我的代码如下:

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { SignInPage } from '../signin/signin';
import { FeedUser } from '../feeduser/feeduser';
import { FeedStylist } from '../feedstylist/feedstylist';
import { Keyboard } from '@ionic-native/keyboard';
import { AngularFireDatabase, FirebaseListObservable } from 'angularfire2/database';


@Component({
  selector: 'page-sign-up',
  templateUrl: 'signup.html'
})
export class SignUpPage {
  stylist: boolean;
  user: boolean;
  items: FirebaseListObservable<any>;

  constructor(public navCtrl: NavController, public keyboard: Keyboard, public af: AngularFireDatabase) {
    this.items = af.list('/test');
    console.log(this.items);
  }

  ...

没有错误,但没有任何反应 - 控制台消息永远不会被记录...甚至不是null(如果它没有检索项目)。

我使用的是Ionic 3.5.0和iOS 10.这个问题只发生在iOS设备上,它可以在浏览器中使用。感谢

2 个答案:

答案 0 :(得分:2)

> <?php namespace App\Http\Controllers\Auth; use > App\Http\Controllers\Controller; use > Illuminate\Foundation\Auth\AuthenticatesUsers; use > Illuminate\Http\Request; class LoginController extends Controller { > use AuthenticatesUsers; > /** > * Where to redirect users after login. > * > * @var string > */ > protected $redirectTo = '/Dashboards'; > /** > * Create a new controller instance. > * > * @return void > */ > public function __construct() > { > $this->middleware('guest', ['except' => 'logout']); > } > public function username() > { > return 'username'; > } > /** > * Log the user out of the application. > * > * @param \Illuminate\Http\Request $request > * @return \Illuminate\Http\Response > */ > public function logout(Request $request) > { > $this->guard()->logout(); > $request->session()->flush(); > $request->session()->regenerate(); > return redirect('/login'); > } } *** 返回observable所以它需要一些时间来解析值并返回结果,但是在你的代码中你可以在解析observable之前立即访问可观察值。

您需要订阅可观察和访问值

示例

af.list('/test')

答案 1 :(得分:0)

以下是最终工作的内容:

this.items = af.list('/test');
this.items.subscribe(items => items.forEach(item => { 
  console.log(item.$value);
}));