2016-07-26 12 views
4

Ich versuche mit bestimmten Wert mit Benutzerschlüssel in Firebase-Datenbank zu suchen, aber ich bekomme unten Probleme.Suche Elemente Objekt mit bestimmten Schlüssel Wert in Firebase-Datenbank

Ich möchte holen, wenn ich Benutzerschlüssel 11112 dann zwei Datensätze komme, wenn ich 11113 passiere, dann wird ein Datensatz kommen.

enter image description here

Auch wenn ich mit folgendem Code versucht, aber Fehler. Feuerbasis Skript: -

<script type='text/javascript' src='https://cdn.firebase.com/js/client/1.0.15/firebase.js'></script> 

Code:

var ref = new Firebase('fire-base-url'); 
ref.orderBy("userkey").equalTo("11112").once("value", function(snapshot) { 
    console.log(snapshot.key); 
}); 

Console Fehler:

Uncaught TypeError: ref.orderBy is not a function 
+0

Welchen Fehler bekommen Sie? – gcampbell

Antwort

3

Es gibt zwei Probleme mit Ihrem Code.

  1. Wie @theblindprophet bereits erwähnt, sollten Sie orderByChild statt orderBy werden.
  2. Sie verwenden das alte Firebase SDK. Es wird nicht mit Anwendungen funktionieren, die in new firebase console erstellt werden.

    Bitte stellen Sie sicher, dass die neue 3.1 Feuerbasis sdk mit

    <script type='text/javascript' src='https://www.gstatic.com/firebasejs/3.1.0/firebase.js'></script> 
    

    verwenden, dann sollten Sie Ihre App

    var config = { 
        apiKey: "", 
        authDomain: "", 
        databaseURL: "", 
        storageBucket: "", 
        }; 
        firebase.initializeApp(config); 
    

    Sie in der Lage, Ihre Konfigurationsdetails zu erhalten, indem Sie auf die Konsole initialisieren , klicken Sie auf Ihren Anwendungsnamen und drücken Sie Add Firebase to your Web app.

    Um Ihr ref Objekt zu erhalten, benötigen Sie den folgenden Code.

    var ref = firebase.database().ref();

Werfen Sie einen Blick in diesen jsFiddle ein volles Arbeitsbeispiel zu sehen.

+1

FIREBASE WARNUNG: Verwenden Sie einen nicht näher spezifizierten Index. Fügen Sie" .indexOn ":" author "unter/Users hinzu Sicherheitsregeln für bessere Leistung bekommen Warnung in Jsfiddle –

+0

@bhaskarbhatt wie die Warnmeldung sagt. Sie können es beheben, indem Sie '". IndexOn ":" Autor "' in Ihren Datenbankregeln (Konsole -> Datenbank -> Regeln). Ich habe es gerade in meiner Anwendung hinzugefügt und Sie werden es nicht wieder in der JSFiddle sehen. – adolfosrs

2

Ihr Fehler:

Uncaught TypeError: ref.orderBy is not a function

es sagt nicht die Funktion finden orderBy und das ist, weil es nicht existiert.

Sie suchen nach orderByChild.

var ref = new Firebase('fire-base-url'); 
ref.orderByChild("userkey").equalTo("11112").once("value", function(snapshot) { 
    console.log(snapshot.key); 
}); 

Referenz: orderByChild and equalTo

+0

Ich habe eine Fehlermeldung an der Konsole "Uncaught TypeError: ref.orderByChild ist keine Funktion " Ich verwende oben genannten firebase.js. Verhindert es? –

+0

Sie verwenden eine sehr alte Version. Versuchen Sie' ' – theblindprophet

+0

Und machen Sie dieses Format: 'https: // .firebaseio.com /' innerhalb 'neuer Firebase' – theblindprophet

0

Schnappen Sie sich einen Schnappschuss der UID-Werte. Vergleichen Sie dann den Benutzerschlüssel mit dem eingegebenen Suchparameter.

var rootRef = new Firebase('fire-base-url'); 
var userRef = rootRef.child(user.uid); 
userRef.on('value', function(snapshot){ 
    var myDbKey = snapshot.child("userkey"); 
    if (mySearchKey === myDbKey) { 
    ... 
    } 
}); 
Verwandte Themen