Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.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
Angularjs 如何在Angularfire中设置数组的键名_Angularjs_Firebase_Angularfire - Fatal编程技术网

Angularjs 如何在Angularfire中设置数组的键名

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

我正在使用Angularfire创建数组,但无法设置密钥名称。Firebase会自动给我一个神秘的密钥(例如Jm9vLy8Lye-KS35KsmL),但我想自己将其设置为更有意义的密钥。不清楚我是如何在Angularfire中做到这一点的。我正在$firebaseArray上使用$add方法:

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…我花了一些时间来理解这一点,但它起作用了。谢谢