HTTP-запрос: PUT 401 (неавторизован)

0

Я начинаю изучать, как использовать firebase в своем приложении. Я следую инструкциям на угловом веб-сайте и устанавливаю фрагмент в index.html следующим образом:

<!-- 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 и действительно нуждаюсь в ком-то, чтобы помочь мне. Спасибо!

Теги:
firebase
firebase-realtime-database

1 ответ

1

База данных Firebase по умолчанию доступна только для зарегистрированных пользователей. См. Предупреждение в первом синем поле на странице о сохранении данных в базе данных.

Чтобы обойти это, вы можете, конечно, настроить правила безопасности своей базы данных, чтобы разрешить публичный доступ. Но пока это нормально в процессе разработки, это плохая идея, так как вы получаете готовое приложение для выпуска другим людям.

Правильный способ безопасного хранения данных - это потребовать от пользователя входа в систему с помощью Firebase Authentication, а затем использовать эту информацию, чтобы обеспечить доступ только к данным, к которым они имеют право. Используя HTTP для доступа к базе данных Firebase, вы сделали это более сложным для себя, чем нужно. Я рекомендую использовать Firebase JavaScript SDK для аутентификации и доступа к базе данных.

  • 0
    Спасибо за ответ. Я думал, что это может быть проблема с авторитетом, но я не знал, как это исправить. Это сработало после того, как я изменил правила безопасности. Но я приму ваш совет, чтобы попробовать Firebase SDK. Большое спасибо :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню