Je suis en train de les éléments de charge Firebase paresseux plus tard de la charge plusieurs d'entre eux à chaque fois que l'utilisateur atteint la fin du conteneur div. Quand je supprimer .endAt()
et .startAt()
je reçois les 15 articles si elles ne sont pas beeing incrémentée et il est coincé à ces 15 articles.charge Firebase paresseux
Quand je garder .endAt()
et .startAt()
je reçois avertissement Using an unspecified index. Consider adding ".indexOn": "title" at /items
firebase même si .indexOn
est réglé. Je suis confus par cet avertissement. Merci d'avance pour votre aide.
Structure Firebase
{
"items" : {
"-Kk6aHXIyR15XiYh65Ht" : {
"author" : "joe",
"title" : "Product 1"
},
"-Kk6aMQlh6_E3CJt_Pnq" : {
"author" : "joe",
"title" : "Product 2"
}
},
"users" : {
"RG9JSm8cUndpjMfZiN6c657DMIt2" : {
"items" : {
"-Kk6aHZs5xyOWM2fHiPV" : "-Kk6aHXIyR15XiYh65Ht",
"-Kk6aMTJiLSF-RB3CZ-2" : "-Kk6aMQkw5bLQst81ft7"
},
"uid" : "RG9JSm8cUndpjMfZiN6c657DMIt2",
"username" : "joe"
}
}
}
Règles de sécurité
{
"rules": {
".read": true,
".write": "auth != null",
"users":{
"$uid": {
".write": "$uid === auth.uid"
"items":{
".indexOn": "title",
"$itemId": {
"title": {".validate": "...}
"type": {".validate": "...}
}
}
}
}
}
}
}
structure de code pour la charge paresseuse
let _start = 0,
_end = 14,
_n = 15;
function lazyLoadItems(){
firebase.database().ref('items')
.orderByChild('title')
.startAt(_start)
.endAt(_end)
.limitToFirst(_n)
.on("child_added", snapshot=> console.log(snapshot.val()));
_start += _n;
_end += _n;
}
Vous vous interrogez '/ points'une, alors que vous avez ajouté un index'/utilisateurs/$ uid/points'une. –
Hmm, oui, bien que je veuille lister tous les éléments de tous les utilisateurs, donc demander '/ users/$ uid/items' sans' uid' ne fera pas l'affaire. Et ajouter '.indexOn ('items')' dans '' rules ''n'a pas de sens. Cela pourrait-il être des règles mal structurées alors? – nehel
C'est impossible à dire avec ce que vous avez partagé. Un extrait minimal du JSON pourrait aider. Vous pouvez obtenir cela en cliquant sur le lien "Export JSON" dans votre [Firebase Database console] (https://console.firebase.google.com/project/_/database/data). –