Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.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
Javascript 将对象推送到firebase的智能方法_Javascript_Angular_Typescript_Firebase_Firebase Realtime Database - Fatal编程技术网

Javascript 将对象推送到firebase的智能方法

Javascript 将对象推送到firebase的智能方法,javascript,angular,typescript,firebase,firebase-realtime-database,Javascript,Angular,Typescript,Firebase,Firebase Realtime Database,我想将一个对象推送到firebase实时数据库,如下所示: userProfile = { name: "Jon", age: 25, gender: "male", ...plenty more attributes} return firebase.database().ref('/userProfile').push({ name: userProfile.name, age: userProfile.age, gender: userProfile.gender

我想将一个对象推送到firebase实时数据库,如下所示:

userProfile = { name: "Jon", age: 25, gender: "male", ...plenty more attributes}
return firebase.database().ref('/userProfile').push({
    name: userProfile.name,
    age: userProfile.age,
    gender: userProfile.gender,
    ....
}).
return firebase.database().ref('/userProfile').push({
    userProfile: userProfile
}).
如果我想在firebase中使用它,我可以这样写:

userProfile = { name: "Jon", age: 25, gender: "male", ...plenty more attributes}
return firebase.database().ref('/userProfile').push({
    name: userProfile.name,
    age: userProfile.age,
    gender: userProfile.gender,
    ....
}).
return firebase.database().ref('/userProfile').push({
    userProfile: userProfile
}).
但是,由于我有很多具有许多属性的对象,所以我不希望用手写。推送()中不允许循环。我可以像这样推动整个物体:

userProfile = { name: "Jon", age: 25, gender: "male", ...plenty more attributes}
return firebase.database().ref('/userProfile').push({
    name: userProfile.name,
    age: userProfile.age,
    gender: userProfile.gender,
    ....
}).
return firebase.database().ref('/userProfile').push({
    userProfile: userProfile
}).
但它将创建一个额外的子节点,如

ref/userProfile/123someId/userProfile/name
这是一种不好的做法,因为它不允许在以后使用过滤器等


有没有更有效的方法可以在不记下每个键/值对的情况下推送整个对象的属性?

答案很简单,但如果其他人遇到同样的问题:

firebase.database().ref('/userProfile').push(userProfile)

谢谢大家

你能把
userProfile
传过去吗?(例如,
return firebase.database().ref(“/userProfile”).push(userProfile)
)不确定我是否理解你,但如果你不想额外的
userProfile
级别:
firebase.database().ref(“/userProfile”).push(userProfile)
啊,你们刚刚救了我一天。是的,很有效,非常感谢。