Javascript 将Firebase.key()推送到对象

Javascript 将Firebase.key()推送到对象,javascript,firebase,angularfire,Javascript,Firebase,Angularfire,我有一个相当简单的createService函数,可以将数据发送到我的Firebase。运行时,它将my$scope.serviceTitle推送到名为服务的对象,并将my$scope.providerTitle推送到名为提供者的对象 main.js $scope.createService = function() { var newService = { title: $scope.serviceTitle }; var newProvider = { title: $scope.p

我有一个相当简单的
createService
函数,可以将数据发送到我的Firebase。运行时,它将my
$scope.serviceTitle
推送到名为
服务的对象,并将my
$scope.providerTitle
推送到名为
提供者的对象

main.js

$scope.createService = function() {
  var newService = { title: $scope.serviceTitle };
  var newProvider = { title: $scope.providerTitle };

  var servicePromise = ServiceService.add(newService);
  var providerPromise = ProviderService.add(newProvider);
};
angular.module('outcomesApp').service('ServiceService', function(FBURL, $firebase) {
  var serviceRef = new Firebase(FBURL).child('services');
  var fireService = $firebase(serviceRef).$asArray();

  return {
    add: function addService(service) {
      return fireService.$add(service);
    }
  };
});
ServiceService.js

$scope.createService = function() {
  var newService = { title: $scope.serviceTitle };
  var newProvider = { title: $scope.providerTitle };

  var servicePromise = ServiceService.add(newService);
  var providerPromise = ProviderService.add(newProvider);
};
angular.module('outcomesApp').service('ServiceService', function(FBURL, $firebase) {
  var serviceRef = new Firebase(FBURL).child('services');
  var fireService = $firebase(serviceRef).$asArray();

  return {
    add: function addService(service) {
      return fireService.$add(service);
    }
  };
});
我的数据最终如下所示:

{
  "services": {
    "-JgDvQz_opBMdULBPySG": {
      "title": "Hernia Repair"
    }
  },
  "providers": {
    "-JgDp4zieowSM-ymfDHR": {
      "title": "The Whittington Hospital",
    }
  }
}
当我运行
createService()
函数时,我想推送第三个对象,该函数名为
service\u at_provider
,其中
service
的值为我刚才推送的服务
.key()
,而
provider
的值为provider
key()
。这可能有助于理解我试图实现的目标:

{
  "services": {
    "-JgDvQz_opBMdULBPySG": {
      "title": "Hernia Repair"
    }
  },
  "providers": {
    "-JgDp4zieowSM-ymfDHR": {
      "title": "The Whittington Hospital",
    }
  },
  "service_at_provider": {
    "-JgDvQzYxtYGp7JspWYr": {
      "service": "-JgDvQz_opBMdULBPySG", // matches the 'newService' just pushed
      "provider": "-JgDp4zieowSM-ymfDHR" // matches the 'newProvider' just pushed
    }
  }
}
由于
$add
,因此
servicespromise
变量返回一个承诺。但我不知道如何返回
键()
,并在同一推送过程中将其传递给一个名为
服务提供者的新对象

这可能吗?

解析返回到新firebase引用的承诺。您可以在createService中执行以下操作

$q.all([servicePromise, providerPromise]).then(function(refs) {
  var serviceRef = refs[0];
  var providerRef = refs[1];

  // service key
  serviceRef.key();

  // provider key
  providerRef.key();

  // Use that data to add to your service_at_provider array
});