如何使用 $firebaseRefProvider 获取带有动态 uri 的 ref?

How can you get ref's with dynamic uri's with $firebaseRefProvider?

$firebaseRefProvider用于促进DI在angular进行测试。尝试在应用程序中使用以注入基于 currentUser 的引用。

没有关于它的文档。在 Firebase Youtube 频道找到了视频。例如:

var config = {
    apiKey: 'somekey',
    authDomain: 'someAuthDomain',
    databaseURL: 'https://some-domain.firebaseio.com',

angular.module('app').config(function($firebaseRefProvider) {
    $firebaseRefProvider.registerUrl({
        default: config.databaseURL,
        peopleRef: `${config.databaseURL}/people`

所以我想用它来更新用户提要,如下所示:

    ...
     .service('FbArrayService', ($firebaseRef, $firebaseArray, $firebaseAuth)  => {
        var vm = this
        vm.currentUser = $firebaseAuth.$getAuth();
        vm.currentUserFeed = $firebaseArray($firebaseRef.child(`feeds/${vm.currentUser}`));
        })
       .controller('MyController', (FbArrayService) => {
       var userfeed = FbArrayService.currentUserFeed; 
       ... 
})

问题:获取错误 --

child is not a method of $firebaseRef provider

没有办法从 ref 提供者那里获取根 ref 的子 ref 吗?

试试这个:

var ref = firebase.database().ref().child('feeds/${vm.currentUser}');

$firebaseArray(ref);

好吧,在玩了一会儿之后我终于意识到这是我忽略的纯 js 逻辑。但是你永远不知道 api.

 vm.currentUserFeed = $firebaseArray($firebaseRef.child(`feeds/${vm.currentUser}`));

需要 .default(实际上引用根)以便可以使用子方法。

 vm.currentUserFeed = $firebaseArray($firebaseRef.default.child.(`feeds/${vm.currentUser}`));

我想我认为 .default 属性 是自动提供给基本提供者的