Ich verwende Firebase (AngularFire) mit ihrer PHP-API und ich baue das Online-Präsenzsystem auf. https://www.firebase.com/docs/managing-presence.htmlSpeichern mehrerer Firebase-Referenzen
Ich fange an, mit vielen Referenzen zu enden und das fühlt sich falsch an.
Sollten Firebase Refs in Vanilla Vars oder einem Objekt gespeichert werden?
controllers.controller('SocialCtrl', function($scope, angularFire) {
var onlineRef = new Firebase($scope.main.firebaseUrl + "https://stackoverflow.com/users/" + $scope.main.userId + "/online");
$scope.online = {};
angularFire(onlineRef, $scope, "online");
var usersRef = new Firebase($scope.main.firebaseUrl + "/users");
$scope.users = {};
angularFire(usersRef, $scope, "users");
var productRef = new Firebase($scope.main.firebaseUrl + "/products/" + $scope.main.serieId);
$scope.product = {};
angularFire(productRef, $scope, "product");
var connectedRef = new Firebase($scope.main.firebaseUrl + "/.info/connected");
connectedRef.on("value", function(snap) {
if (snap.val() === true) {
onlineRef.onDisconnect().set(Firebase.ServerValue.TIMESTAMP);
onlineRef.set(true);
}
});
});
ODER
$scope.fire = {
refs: {
online: new Firebase($scope.main.firebaseUrl + "https://stackoverflow.com/users/" + $scope.main.userId + "/online"),
users: new Firebase($scope.main.firebaseUrl + "/users"),
product: new Firebase($scope.main.firebaseUrl + "/products/" + $scope.main.serieId),
connected: new Firebase($scope.main.firebaseUrl + "/.info/connected")
}
};
angularFire($scope.fire.refs.online, $scope, "fire.online");
angularFire($scope.fire.refs.users, $scope, "fire.users");
angularFire($scope.fire.refs.product, $scope, "fire.product");
angularFire($scope.fire.refs.connected, $scope, "fire.connected");
$scope.fire.refs.connected.on("value", function(snap) {
if (snap.val() === true) {
$scope.fire.refs.online.onDisconnect().set(Firebase.ServerValue.TIMESTAMP);
$scope.fire.refs.online.set(true);
}
});
meine ich nicht eine Best Practices Frage zu machen. Firebase ist so neu, dass ich nichts brechen will, was mir vielleicht noch nicht bewusst ist.
Danke für die '.child' Spitze, sehr nützlich. Ich wickelte die Wurzelreferenz in einer eckigen Fabrik ein und rief '.child' für alle anderen Bedürfnisse jetzt an. Das Ergebnis fühlt sich sehr sauber an. – SimplGy