我有一个角度应用程序,它使用angularFire库。 firebase文档中声明支持angularfire https://firebase.google.com/support/guides/firebase-web#update_your_firebase_libraries_numbered
我已将firebase和angularfire更新为最新版本。
之前://这有效:-)
L
AFTER://这不起作用: - (
// *** DataService ***
var root = new Firebase(FIREBASE_URL);
var service = {
root: root,
items: root.child('items'),
tastings: root.child('tastings'),
users: root.child('users'),
votes: root.child('votes')
};
return service;
// *** Controller ***
$scope.tastings = $firebaseArray(dataService.tastings);
我得到的错误:"必须将有效的Firebase引用传递给$ firebase(不是字符串或网址)"
当我评估dataService.tastings时,它看起来像是Chrome控制台中的firebase引用,尽管已经添加了像database这样的新属性。
答案 0 :(得分:2)
AngularFire现已正式更新,以支持Firebase 3.x.x:)
答案 1 :(得分:1)
是的,Google新的firebase 3及更高版本支持AngularFire。
除此之外,您还可以获得详细的文档:
GitHub:https://github.com/firebase/angularfire
答案 2 :(得分:0)
我在我的一个项目中使用了最新版本并且工作正常,所以你应该有这样的东西:
/// Main configuration of Firebase
var config = {
apiKey: "AIzaSyDcPq_z9vh4CidkzFDyerRK0ZS7gs2Sj14",
authDomain: "citytimer-90920.firebaseapp.com",
databaseURL: "https://citytimer-90920.firebaseio.com",
storageBucket: "citytimer-90920.appspot.com",
messagingSenderId: "497040832817"
};
firebase.initializeApp(config);
这部分是纯 Javascript ,因此您无需将其包含在Angular文件中。
然后这些是我正在使用的Angular文件。
/// Database service
function firebaseDataService() {
var root = firebase.database().ref();
var service = {
root: root,
requests: root.child('requests'),
places: root.child('places')
};
return service;
}
正如您所看到的,我的服务与您的相似。
/// Specific service to retrieve data
function cityTimerService($firebaseArray, firebaseDataService, $firebaseObject, $rootScope, $q, $http) {
var service = {
getRequestsByUser: getRequestsByUser,
};
return service;
function getRequestsByUser(uid) {
if (!requests) {
requests = $firebaseArray(firebaseDataService.requests.child(uid).child('userRequests'));
}
return requests;
}
}
基本上,您不再需要提供FIREBASE_URL
,因为它是配置对象的一部分。对于记录,您可以从Firebase控制台获取此配置对象。
如果您想仔细查看我在项目中的代码,您可以here进行操作。