$firebaseRefProvider
用于在角度上推广DI以进行测试。尝试在应用程序中使用基于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`
所以我想用它来更新用户Feed,如下所示:
...
.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提供者那里获得root ref的子参考?
答案 0 :(得分:0)
试试这个:
var ref = firebase.database().ref().child('feeds/${vm.currentUser}');
$firebaseArray(ref);
答案 1 :(得分:0)
好了,玩了一会儿后我终于意识到这是我忽略的普通逻辑。但你永远不会知道api。
vm.currentUserFeed = $firebaseArray($firebaseRef.child(`feeds/${vm.currentUser}`));
需要 .default (实际引用根目录),因此可以使用子方法。
vm.currentUserFeed = $firebaseArray($firebaseRef.default.child.(`feeds/${vm.currentUser}`));
我想我认为.default属性是自动提供给基础提供者的