升级到firebase 3后,应用程序中的Angularfire代码失败

时间:2016-05-24 19:40:46

标签: angularjs firebase dependency-management angularfire firebase-realtime-database

我有一个使用firebase 2.2.2的webapp。现在我去了firebase.com,不得不搬到新版本的Firebase。然后我得到将此代码放在应用程序的html文件中的说明:



<script src="https://www.gstatic.com/firebasejs/live/3.0/firebase.js"></script>
<script>
  // Initialize Firebase
  var config = {
    apiKey: "AIzaSakdsjfg-Lw.kadjfglkadjhgxhMDbq4",
    authDomain: "myapp.firebaseapp.com",
    databaseURL: "https://myapp.firebaseio.com",
    storageBucket: "myapp.appspot.com",
  };
  firebase.initializeApp(config);
</script>
    
&#13;
&#13;
&#13;

但如果我这样做,请删除现有的引用:

&#13;
&#13;
<script src="https://cdn.firebase.com/js/client/2.2.2/firebase.js"></script>
&#13;
&#13;
&#13;

然后该应用程序不再工作了。具体而言,角度指令似乎不再起作用。例如,在下面的代码中显示了文本,但链接到菜单项&#39;工厂服务&#39;现在不起作用。

&#13;
&#13;
<div class="header" ng-controller="MenuCtrl as menuCtrl">
  <ul class="nav nav-pills pull-right">
    <li ng-if="menuCtrl.isLoggedIn()"><a ng-href="#/buildings">Buildings</a></li>
    <li ng-if="menuCtrl.isLoggedIn()"><a ng-href="#/apartments">Apartments</a></li>
    <li><a ng-href="#/factsvc">Factory-Service</a></li>
    <li class="active"><a ng-href="#/">Home</a></li>
  </ul>
  <h3 class="text-muted">Hello AngularFire anonymous authentication</h3>
</div>
&#13;
&#13;
&#13;

该应用程序适用于AngularJS和AngularFire代码:

&#13;
&#13;
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular-route.min.js"></script>
  <script src="https://cdn.firebase.com/libs/angularfire/1.0.0/angularfire.min.js"></script>
&#13;
&#13;
&#13;

如果我安装最新版本的Angular fire(npm install angularfire --latest),那么依赖firebase版本2.4.2。已安装,而不是版本3.x. (当我运行npm install firebase --latest但是安装了3.0.2版本)。

如何解决这个问题?我是否应该不包含Firebase告诉我包含的代码,还是可以手动使用firebase 3.x进行angularfire?或者参考v.2.2.2。除了新参考?

1 个答案:

答案 0 :(得分:1)

由于API在2.x和3.0之间发生了变化,因此在作者(我和其他人)升级库之前,您将无法使用AngularFire。这发生在this changelist,差不多完成了。