Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未在ios上调用AngularFireDatabase列表函数_Angular_Firebase_Ionic Framework_Firebase Realtime Database_Angularfire2 - Fatal编程技术网

未在ios上调用AngularFireDatabase列表函数

未在ios上调用AngularFireDatabase列表函数,angular,firebase,ionic-framework,firebase-realtime-database,angularfire2,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 { FeedSt

我正在尝试使用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);
  }

  ...
从'@angular/core'导入{Component};
从'ionic angular'导入{NavController};
从“../signin/signin”导入{SignInPage};
从“../FeedUser/FeedUser”导入{FeedUser};
从“../FeedStylist/FeedStylist”导入{FeedStylist};
从'@ionic native/Keyboard'导入{Keyboard};
从“angularfire2/database”导入{AngularFireDatabase,FirebaseListObservable};
@组成部分({
选择器:“页面注册”,
templateUrl:'signup.html'
})
导出类签名{
造型师:布尔;
用户:布尔;
项目:可观察到的FirebaseList;
构造函数(公共navCtrl:NavController,公共键盘:键盘,公共af:AngularFireDatabase){
this.items=af.list('/test');
console.log(this.items);
}
...
没有错误,但什么也没有发生-控制台消息从未被记录…甚至不为null(如果它没有检索项目)

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

af.list('/test')
返回可观测值,因此解析值和返回结果需要一些时间,但在您的代码中,在解析可观测值之前,您可以立即访问可观测值

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

范例

 this.items = af.list('/test');
   this.items.subscribe(value=> {
        console.log(this.items);
    });
af.list('/test')
返回可观测值,因此解析值和返回结果需要一些时间,但在您的代码中,在解析可观测值之前,您可以立即访问可观测值

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

范例

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

以下是最终奏效的方法:

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

以下是最终奏效的方法:

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

似乎
SignUpPage
constructor
从未基于
运行,控制台消息从未记录
。您应该确认路由是否正常。似乎
SignUpPage的
constructor
从未基于
控制台消息从未记录
运行。您应该确认是否你的路由正在运行。谢谢-我会尽快尝试-我想知道…你必须这样做是因为爱奥尼亚?在angularfire2文档中,它从来没有提到过这一点…仍在了解爱奥尼亚…订阅是不是我在其他地方也会使用的东西?它是否只用于网络请求?我想你的新用户是angularfire2或爱奥尼亚。我会记录在跳到Ionic之前,我必须开始学习observable。是的,你可以在其他组件中使用subscribe,你需要在销毁组件时取消订阅OK…当我使用你的代码时,它找不到
快照
变量…我将其更改为
,但你是对的,我知道observable并在10分钟后订阅/取消订阅-15秒后会弹出一个错误,上面写着“运行时错误:网络错误”底部有一个例子,上面有
preserveSnapshot
选项……是这样吗?页面上的文档也没有说明使用列表时需要订阅感谢-我很快就会试试-我想知道…你必须这样做是因为爱奥尼亚吗?在angularfire2文档中,它从来没有提到过这一点……还是要知道ionic…订阅是不是我也会在其他地方使用?它只会用于网络请求吗?我想你的新手应该是angular或ionic。我建议在跳到ionic之前开始学习observable。是的,你可以在其他组件中使用订阅,当我使用你的代码它找不到
快照
变量…我将其更改为
,但您是对的,我知道可以观察并订阅/取消订阅。10-15秒后,会弹出一个错误,上面写着“运行时错误:网络错误”在底部有一个例子,上面有
preserveSnapshot
选项……是这样吗?另外,该页面上的文档没有说明在使用列表时需要订阅