Angularjs 如何在Angularfire中设置数组的键名
我正在使用Angularfire创建数组,但无法设置密钥名称。Firebase会自动给我一个神秘的密钥(例如Jm9vLy8Lye-KS35KsmL),但我想自己将其设置为更有意义的密钥。不清楚我是如何在Angularfire中做到这一点的。我正在$firebaseArray上使用$add方法:Angularjs 如何在Angularfire中设置数组的键名,angularjs,firebase,angularfire,Angularjs,Firebase,Angularfire,我正在使用Angularfire创建数组,但无法设置密钥名称。Firebase会自动给我一个神秘的密钥(例如Jm9vLy8Lye-KS35KsmL),但我想自己将其设置为更有意义的密钥。不清楚我是如何在Angularfire中做到这一点的。我正在$firebaseArray上使用$add方法: var firebaseRef = new Firebase("https://firebase_location"); $scope.messages = $firebaseArray(firebas
var firebaseRef = new Firebase("https://firebase_location");
$scope.messages = $firebaseArray(firebaseRef);
$scope.messages.$add(
{
FirstName: patient.FirstName,
LastName: patient.LastName
}
).then(function(firebaseRef) {
var id = firebaseRef.key();
});
数据存储良好,我可以在仪表板上看到它。但是,id始终是一个神秘的firebase值。我希望自己能把它设置成有意义的东西。在我的情况下,每个患者的ID都是有意义的
有什么想法吗
谢谢大家! 将项目添加到firebase数组使firebase为您定义唯一的id。如果这不是您想要的,我认为您可以尝试使用$firebaseObject获取“messages”对象,而不是仅使用$firebaseArray获取列表。然后,您将能够在js中编辑您的对象,以便将您的项目添加到messages集合中。通过这种方式,您可以使用最适合您需要的id。最后,必须$save()保存整个对象。看这里:
希望这能有所帮助。感谢您的回复 我发现子函数可以满足我的需要。我首先指定子对象,然后设置它
var patient_child = firebaseScreenRef.child(patient.PatientId);
patient_child.set(
{
FirstName: patient.FirstName,
LastName: patient.LastName,
});
对于你的问题,我找到了一个解释。您不需要使用firebaseObject,应直接使用ref:
var ref = new Firebase(FURL);
createProfile: function(id ,user) {
var profile = {`enter code here`
name: user.name,
email: user.email,
gravatar: get_gravatar(user.email, 40)
};
var profileRef = $firebaseArray(ref.child('profile').child(id));
return ref.child('profile').child(id).set(profile);
},
在代码中,我使用ref引用我的URL。使用profileRef,我创建了一个子概要文件,并为概要文件添加了id。之后,我直接使用ref为我想要的id设置值
profile
。你看,这很容易。这很有帮助!我首先尝试使用$firebaseObject和$firebaseArray,但只有ref起作用-您必须直接使用ref…我花了一些时间来理解这一点,但它起作用了。谢谢