2017-12-14 2 views
0

Diese meine Datenbankstruktur ist: Database snapWas ist die passende Abfrage für den folgenden Fall?

ich mit „locale“ alle Benutzer aufzulisten versuche gleich „Kairo, Ägypten“ so habe ich die folgende Abfrage:

exports.calculateMatches = functions.https.onRequest((request, response) => { 

// Access-Benutzer Profile, die in der locale des anfordernden Benutzers befinden

databaseRef.child("users").orderByChild("locale").equalTo(request.query.locale).once("value") 
    .then(snap => { 
     snap.forEach(profile => { 
     console.log(profile); 
     }); 
    }); 
}); 

Hinweis dieser Funktion auf Feuerbasis Cloud-Funktionen bereitgestellt wird, und das ist, was ich in den Protokollen erhalten: logs

+1

Statt Screenshots von Fehlern einschließlich, ist es hilfreicher, den Text zu kopieren und direkt in der Frage stellen, so dass es leichter gesucht werden kann. –

Antwort

1

HTTPS-Typ-Funktionen erfordern, dass Sie send a response an den Client, um die Funktion zu beenden. Ohne das werden sie immer eine Auszeit nehmen, und der Kunde wird die ganze Zeit warten.

Zum Beispiel:

const databaseRef = admin.database().ref('') 
exports.calculateMatches = functions.https.onRequest((request, response) => { 
    databaseRef.child("users").orderByChild("locale").equalTo(request.query.locale).once("value") 
    .then(snap => { 
     const profiles = [] 
     snap.forEach(profile => { 
      profiles.push(profile.val()) 
     }); 
     response.send(profiles) 
    }) 
    .catch(error => { 
     response.status(500).send(error) 
    }); 
}); 
+0

Awesome jetzt bekomme ich eine anständige Sicht auf JSON-Daten, aber ich bekomme nichts. Ich habe versucht, es zu halten, nur um ByChild ohne den EqualTo Teil zu ordnen, aber hat auch nichts ... etwas falsch mit der Abfrage? –

+1

/Benutzer hat kein Kind namens "locale". Es gibt ein paar zusätzliche Ebenen von Kindern dort. Sie müssen Ihre Daten so umstrukturieren, dass sie der Art der Abfrage entsprechen, die Sie ausführen möchten. https://stackoverflow.com/questions/35446695/firebase-deep-query-orderbychild-with-equalo –

Verwandte Themen