AngularFire2 回调设置值
AngularFire2 call back for setting values
我正在为我的 angular 2 项目使用 AngularFire2。
在我的 forms.service.ts 中,我将以下内容保存到 firebase
saveToFirebase(bug: MyBugs) {
const bugRef = this.af.database.object('/bugs');
bugRef.set(bug)
}
在我的 app.component.ts 里面,我有
this.formsService.saveToFirebase(bug);
我可以看到我的 firebase 能够保存数据。但是,我想对请求的状态(成功、失败、超时?)进行某种回调,以便我可以在此过程中显示某种 activity 指示符。我想在我调用 saveToFirebase()
的 app.component 文件中执行此操作
set
returns a promise,所以如果您 return 从您的服务方法中承诺:
saveToFirebase(bug: MyBugs): Promise<void> {
const bugsObject = this.af.database.object('/bugs');
return bugsObject.set(bug);
}
可以这样调用:
this.formsService
.saveToFirebase(bug)
.then(() => console.log('done!'))
.catch(error => console.log(error));
鉴于您使用的数据库路径名为 bugs
并且您似乎添加了一个错误,因此 list
and push
可能就是您要查找的内容。
push
方法会将 child 添加到 parent ref,生成推送密钥(一些随机数据和时间戳的组合 - 这样密钥将按时间)。它 return 是一个 'thenable' 数据库引用(即 Promise),您可以从中获取推送密钥。
你可以这样做:
saveToFirebase(bug: MyBugs): Promise<string> {
const bugsList = this.af.database.list('/bugs');
const result = bugsList.push(bug);
return result.then(() => result.key) as Promise<string>;
}
可以这样调用:
this.formsService
.saveToFirebase(bug)
.then((key: string) => console.log('pushed: ' + key))
.catch(error => console.log(error));
以上示例解析了对推送密钥的承诺,以便服务的调用者可以使用它。
我正在为我的 angular 2 项目使用 AngularFire2。
在我的 forms.service.ts 中,我将以下内容保存到 firebase
saveToFirebase(bug: MyBugs) {
const bugRef = this.af.database.object('/bugs');
bugRef.set(bug)
}
在我的 app.component.ts 里面,我有
this.formsService.saveToFirebase(bug);
我可以看到我的 firebase 能够保存数据。但是,我想对请求的状态(成功、失败、超时?)进行某种回调,以便我可以在此过程中显示某种 activity 指示符。我想在我调用 saveToFirebase()
的 app.component 文件中执行此操作set
returns a promise,所以如果您 return 从您的服务方法中承诺:
saveToFirebase(bug: MyBugs): Promise<void> {
const bugsObject = this.af.database.object('/bugs');
return bugsObject.set(bug);
}
可以这样调用:
this.formsService
.saveToFirebase(bug)
.then(() => console.log('done!'))
.catch(error => console.log(error));
鉴于您使用的数据库路径名为 bugs
并且您似乎添加了一个错误,因此 list
and push
可能就是您要查找的内容。
push
方法会将 child 添加到 parent ref,生成推送密钥(一些随机数据和时间戳的组合 - 这样密钥将按时间)。它 return 是一个 'thenable' 数据库引用(即 Promise),您可以从中获取推送密钥。
你可以这样做:
saveToFirebase(bug: MyBugs): Promise<string> {
const bugsList = this.af.database.list('/bugs');
const result = bugsList.push(bug);
return result.then(() => result.key) as Promise<string>;
}
可以这样调用:
this.formsService
.saveToFirebase(bug)
.then((key: string) => console.log('pushed: ' + key))
.catch(error => console.log(error));
以上示例解析了对推送密钥的承诺,以便服务的调用者可以使用它。