2016-07-23 16 views
0

Ich fange an zu lernen, wie Firebase in meiner App zu verwenden. Ich die Anweisung in Winkel Website folgen und setzen Sie den Code-Schnipsel in der index.html wie:HTTP-Anfrage: PUT 401 (Nicht autorisiert)

<!-- The codes to add firebase --> 
    <script src="https://www.gstatic.com/firebasejs/3.2.0/firebase.js"></script> 
    <!-- The core firebase client (required) --> 
    <script src="https://www.gstatic.com/firebasejs/3.1.0/firebase-app.js"></script> 
    <!-- firebase-auth - Firebase Authentication (optional) --> 
    <script src="https://www.gstatic.com/firebasejs/3.1.0/firebase-auth.js"></script> 
    <!-- firebase-database - The Firebase Realtime Database (optional) --> 
    <script src="https://www.gstatic.com/firebasejs/3.1.0/firebase-database.js"></script> 

    <script> 
    var config = { 
     apiKey: ..., 
     authDomain: ..., 
     databaseURL: "https://...", 
     storageBucket: "...", 
    }; 
    firebase.initializeApp(config); 
    </script> 

Und dann versuche ich HTTP-Anforderung zu verwenden, setzen Daten wie:

submitForm(personalInfo: PersonalInfo, educationsInfo: Education[], experiencesInfo: Experience[]): Observable<string>{ 
    let body = JSON.stringify({personalInfo, educationsInfo, experiencesInfo}); 
    let headers = new Headers({'Content-Type': 'application/json' }); 
    let options = new RequestOptions({ headers: headers}); 
    console.log(body); 
    let url = this.firebaseUrl + 'apply-form.json'; 
    return this.http.put(url, body) 
        .map((response) => { 
         return response; 
        }) 
        .catch(this.handleError); 
} 

aber ich habe die Folgefehler:

PUT https://XXX.firebaseio.com/apply-form.json 401 (Unauthorized) 

Ich weiß nicht, was das Problem ist. Ich bin neu in Firebase und brauche wirklich jemanden, der mir hilft. Vielen Dank!

Antwort

1

Ihre Firebase-Datenbank ist standardmäßig nur von authentifizierten Benutzern beschreibbar. Siehe die Warnung in der ersten blauen Box auf der Seite saving data to the database.

Um dies zu umgehen, können Sie natürlich configure the security rules of your database to allow public access. Aber während der Entwicklung ist das in der Regel in Ordnung, aber es ist eine schlechte Idee, wenn Sie Ihre App für andere Personen freigeben.

Die richtige Art, Daten sicher zu übertragen, besteht darin, den Benutzer auf sign in with Firebase Authentication zu setzen und diese Informationen dann zu verwenden, um sicherzustellen, dass sie nur auf Daten zugreifen können, für die sie autorisiert sind. Wenn Sie HTTP verwenden, um auf die Firebase-Datenbank zuzugreifen, haben Sie dies für sich selbst schwieriger gemacht als nötig. Ich empfehle die Verwendung des Firebase JavaScript SDK für authentication und den Zugriff auf die database.

+0

Vielen Dank für Ihre Antwort. Ich dachte, es könnte das Autoritätsproblem sein, aber ich habe nicht herausgefunden, wie ich es beheben sollte. Es funktionierte, nachdem ich die Sicherheitsregeln geändert hatte. Aber ich rate Ihnen, Firebase SDK auszuprobieren. Danke vielmals :) – gogopower

Verwandte Themen