错误:路径必须是非空字符串,并且不能包含 "."、"#"、"$"、"[" 或 "]"(离子 2 和 Firebase)


saveDetails(){
this.afAuth.authState.take(1).subscribe(auth => {
this.af.object('request/${auth.uid}').set(this.request)
.then();
})

执行此方法后,出现错误:Firebase.child 失败:第一个参数是无效路径:"request/${auth.uid}"。路径必须是非空字符串,并且不能包含"."、"#"、"$"、"["或"]"。尝试删除 $,但这不起作用。很确定我也没有传入空字符串。

如果要使用字符串内插,则需要使用反引号 ('( 而不是单引号 ('( 来包装字符串。见下文。

saveDetails(){
this.afAuth.authState.take(1).subscribe(auth => {
this.af.object(`request/${auth.uid}`).set(this.request)
.then();
})

很容易忘记! :)

在此上下文中使用变量的正确方法是

saveDetails(){
this.afAuth.authState.take(1).subscribe(auth => {
this.af.object('request/'+ auth.uid).set(this.request)
.then();
})