一尘不染

将对象添加到Firebase时设置自己的密钥-AngularFire

angularjs

我可以使用以下内容将对象添加到Firebase数据存储中:

var uniqueId = {
    name: "a name",
    location: "new york"
}
$scope.myItems.$add(uniqueId).then(function(firebaseId){
    // do something on success
}, function(){
    // do something if call fails
});

上面的代码会将一个对象添加到我的数据存储中,如果添加成功,则返回由Firebase生成的ID。我刚刚添加的对象保存在此键下。

当我添加到数据存储区时,是否可以指定密钥名称?


阅读 258

收藏
2020-07-04

共1个答案

一尘不染

__Firebase中的 所有内容 都是一个URL。

以以下URL为例。

https://myapp.firebaseio.com/users/

假设我们要在此位置创建一个键为1的用户作为孩子。我们的网址如下所示。

https://myapp.firebaseio.com/users/1

要使用AngularFire创建用户,我们可以在用户节点上创建引用,然后调用$ child(1)创建对该位置的引用。

var usersRef = new Firebase('https://myapp.firebaseio.com/users');
var userRef = new Firebase('https://myapp.firebaseio.com/user/1');

$scope.users = $firebase(usersRef);

// these are the same
$scope.userOne = $firebase(userRef);
$scope.userOne = $scope.users.$child(1);

然后,我们可以用来$set在该位置存储用户的价值。

var usersRef = new Firebase('https://myapp.firebaseio.com/users');
$scope.users = $firebase(usersRef);
$scope.users.$child(1).set({
  first: 'Vincent',
  last: 'Van Gough',
  ears: 1
});

您的情况是:

var uniqueId = {
    id: 1,
    name: "a name",
    location: "new york"
};
$scope.myItems.$child(uniqueId.id).$set(uniqueId);

请记住,使用$set会破坏该位置上的所有先前数据。要无损地更新值,请使用$update

2020-07-04