我将一些用户信息保存到firebase数据库中。我还想在成功保存后检索它的路径。我能够做得很好,但是,我对我收到的数据感到困惑,如下所示。
所以,如果我想要获得路径,我必须运行
data.path.o
为什么这种格式如此奇怪?我看到U,Nc,m,path,Y o。他们是假设是这样还是我错过了什么?
我正在使用带有以下代码的角度2 + angularfire2
saveUserToFirebase(user: User): firebase.database.ThenableReference {
const userRef = this.af.database.list('/users/' + user.company);
return userRef.push(user)
}
this.databaseService.saveUserToFirebase(user)
.then( data => {
console.log('User saved to firebase databse with path', data);
console.log('User saved to firebase databse with path1', data.path);
console.log('User saved to firebase databse with path2', data.path.o);
this.router.navigate(['/login']);
this.isLoading = false;
}, error => {
this.isLoading = false;
console.log("Error asjf0e", error);
})
答案 0 :(得分:7)
您从saveUserToFirebase
返回的是ThenableReference
,它是对数据库中某个位置的引用。引用不包含实际数据,它只是指向位置。
要从参考中获取完整网址,请在其上调用toString
:
this.databaseService.saveUserToFirebase(user)
.then( ref => {
console.log('User saved to firebase database with URL', ref.toString());
this.router.navigate(['/login']);
this.isLoading = false;
}, error => {
this.isLoading = false;
console.log("Error asjf0e", error);
})
要获得绝对路径(没有域),可以使用字符串操作:
var path = ref.toString().substring(ref.root.toString().length);