Dire che ho il seguente:Firebase ottenere il percorso completo di URL di riferimento in dataSnapshot (JavaScript API)
var firebaseARef = new Firebase("http://this.is.my/firebase/url/A/reference")
var firebaseBRef = new Firebase("http://this.is.my/firebase/url/B/reference")
Quando definisco i miei .on()
funzioni, vorrei specificare un singolo gestore, e poi fare tutto della gestione in un posto nel mio codice, piuttosto che dover definire le funzioni in linea con la definizione .on()
. Per illustrare:
var handleAllFirebaseStuff = function(dataSnapshot){
var name = dataSnapshot.name(); //PROBLEM HERE: returns "reference", no way to distinguish!
switch(name){
case "http://this.is.my/firebase/url/A/reference": //How do I get this full reference from dataSnapshot?
/* do stuff for A reference */
case "http://this.is.my/firebase/url/B/reference": //How do I get this full reference from dataSnapshot?
/* do stuff for B reference */
default:
break;
}
}
firebaseARef.on('value', handleAllFirebaseStuff);
firebaseBRef.on('value', handleAllFirebaseStuff);
Il problema è dataSnapshot.name()
torneranno solo "reference"
in entrambi i casi, il che rende impossibile distinguere tra i due riferimenti nella dichiarazione switch/caso!
Sono certo che dataSnapshot
contenga queste informazioni da qualche parte, ma devo ancora scoprirlo in qualsiasi modo conveniente. Esplorando l'oggetto dataSnapshot
nella console, trovo un oggetto sepolto all'interno di path
che contiene (tra le altre cose) un array, usando l'esempio sopra, che conterrebbe ["firebase", "url", "A", "reference"]
, ma non c'è un modo semplice per accedervi.
Se avessi accesso a tale array, potrei ricostruire l'URL o trovare un modo più conveniente per gestire l'istruzione switch/case. Penso che una stringa completa del riferimento sarebbe più appropriata come valore facilmente accessibile da dataSnapshot
.
Stai cercando 'snapshot.ref(). ToString()'? –
Questo è quello! Ciò che è documentato sull'API Javascript di Firebase sarebbe estremamente utile! Se vuoi fornire la risposta, lo accetterò volentieri ... – MandM