Ich habe Probleme mit grundlegenden Firebase-Abfrage, es ist mit dem Rest der Anwendung kein Problem, Daten zu bringen und mit ihnen zu arbeiten. Und sogar mit Firebase-Authentifizierung.Fehler beim Zugriff auf die Eigenschaften einer Abfrage - AngularJS + Firebase
Allerdings, mit diesen Abfragen, wenn ich versuche, auf seine Eigenschaften zuzugreifen, gibt eine undefinierte mich zurück. Obwohl es klar definiert ist.
Wird jemand den Fehler sehen? Vielen Dank.
Versionen, mit denen ich arbeite, sind:
"dependencies": {
"angular": "^1.5.8",
"bootstrap": "^3.3.7",
"angular-bootstrap": "^2.1.0",
"angularfire": "^2.0.2",
"firebase": "^3.3.2",
"angular-animate": "^1.5.8",
"angular-route": "^1.5.8",
"textAngular": "^1.5.11",
"angular-socialshare": "angularjs-socialshare#^2.3.1",
"angular-timeago": "^0.4.3"
}
Dies ist die Ansicht:
<div ng-controller="blogpostCtrl">
{{post}}
{{post.Title}}
</div>
Dies ist der Inhalt von Feuerbasis:
{
"blog" : {
"posts" : {
"-KT9vxYoCkly93GqTSY7" : {
"CreationDate" : 1475504757165,
"Post" : "<p>esto es una prueba de post</p>",
"Title" : "esto es una prueba",
"Url" : "esto_es_una_prueba",
"isPublished" : true
},
"-KTA-f-BDAzC-4T4a50K" : {
"CreationDate" : 1475505991860,
"Post" : "<p>dsf sdf sdfs fd</p>",
"Title" : "o1i21o3i",
"Url" : "o1i21o3i",
"isPublished" : true
},
"-KTA-ggQSQLnDr4eQtfi" : {
"CreationDate" : 1475505998783,
"Post" : "<p>ds sdf sdf</p>",
"Title" : "4 45654456 2546345562535",
"Url" : "4_45654456_2546345562535",
"isPublished" : true
}
}
}
}
Dies ist der Controller:
app.controller("blogpostCtrl", function($scope, $location, $routeParams, $firebaseArray) {
var ref = firebase.database().ref("blog/posts");
$scope.post = $firebaseArray(ref.orderByChild("Url").equalTo($routeParams.uri));
console.log($scope.post)
console.log($scope.post.Title) //<------------ undefined
firebase.database().ref("blog/posts").orderByChild("Url").equalTo($routeParams.uri).once('value').then(function(snapshot) {
console.log(snapshot.val())
console.log(snapshot.val().Title) //<------------ undefined
});
firebase.database().ref("blog/posts").on('value', function(snapshot) {
console.log(snapshot.val())
console.log(snapshot.val().Title) //<------------ undefined
});
});
Und dies ist die Ausgabe der Konsole:
[]0: Object$$added:()$$error:()$$getKey:()$$moved:()$$notify:()$$process:()$$removed:()$$updated:()$add:()$destroy:()$getRecord:()$indexFor:()$keyAt:()$loaded:()$ref:()$remove:()$save:()$watch:()length: 1__proto__: Array[0]
ctrl.js:163 undefined
ctrl.js:170 Object {-KT9vxYoCkly93GqTSY7: Object, -KTA-f-BDAzC-4T4a50K: Object, -KTA-ggQSQLnDr4eQtfi: Object}-KT9vxYoCkly93GqTSY7: Object-KTA-f-BDAzC-4T4a50K: Object-KTA-ggQSQLnDr4eQtfi: Object__proto__: Object
ctrl.js:171 undefined
ctrl.js:166 Object {-KTA-ggQSQLnDr4eQtfi: Object}-KTA-ggQSQLnDr4eQtfi: ObjectCreationDate: 1475505998783Post: "<p>ds sdf sdf</p>"Title: "4 45654456 2546345562535"Url: "4_45654456_2546345562535"isPublished: true__proto__: Object__proto__: Object
ctrl.js:167 undefined
natürlich ist es undefiniert. 'Title' ist eine Eigenschaft eines anderen Objekts – Akis
Ja, ich habe den Fehler zumindest bei Abfragen des Snapshots gesehen. Bei der Arbeit mit $ scope.post = $ firebaseArray (ref.orderByChild ("URL") equalTo ($ routeParams.uri).); Ich habe das Problem. Außerdem kann ich nicht den Schlüssel einiger Daten, die ich konsultiere, bekommen. Wenn ich den Schlüssel hatte, mache ich keine Abfrage mit einem Feld darin. – Epifanio