2016-07-23 30 views
0

私は自分のアプリでfirebaseを使用する方法を学び始めます。私は、角度ウェブサイト内の命令に従うなどのindex.htmlにスニペットを設定します。HTTPリクエスト:PUT 401(無許可)

<!-- 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> 

そして、私は次のようにデータを置くためにHTTPリクエストを使用しよう:しかし

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); 
} 

、私が得ました次のエラーが発生しました:

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

問題が何かわかりません。私はfirebaseを使用して新しく、本当に私を助ける人が必要です。ありがとうございました!

答えて

1

Firebaseデータベースは、デフォルトでは、認証されたユーザだけが書き込み可能です。ページの最初の青色のボックスsaving data to the databaseの警告を参照してください。

これを回避するには、もちろんconfigure the security rules of your database to allow public accessがあります。しかし、それは一般的に開発中には問題ありませんが、自分以外の人にアプリを公開する準備ができたら、それは悪い考えです。

安全にデータを送信する適切な方法は、ユーザーにsign in with Firebase Authenticationを要求し、その情報を使用して、許可されているデータにのみアクセスできるようにすることです。 HTTPを使用してFirebaseデータベースにアクセスすることで、必要以上に自分自身を難しくすることができました。 Firebase JavaScript SDKをauthenticationに、databaseにアクセスすることをお勧めします。

+0

ありがとうございます。私はそれが権威の問題かもしれないと思ったが、私はそれを修正する方法をしなかった。私はセキュリティルールを変更した後に働いた。しかしFirebase SDKを試してみるように助言します。どうもありがとう :) – gogopower

関連する問題