Использование анонимной аутентификации Firebase, ошибка, неверный JSON - PullRequest
3 голосов
/ 29 апреля 2019

Недавно при попытке войти анонимно с помощью Firebase я получаю следующую ошибку

{"error":{"code":400,"message":"ADMIN_ONLY_OPERATION","errors":[{"message":"ADMIN_ONLY_OPERATION","domain":"global","reason":"invalid"}]}}

Функция, которую я вызываю, представлена ​​в документации

    doSignInAnonymously = () => {

    this.auth.signInAnonymously()
  }

Я не понимаю код ошибки, так как Ошибка 400 означает неверный JSON в вашем запросе:

Убедитесь, что сообщение JSON правильно отформатировано и содержит действительные поля (например, убедитесь, что передан правильный тип данных).

Я использую функцию, предоставляемую API, поэтому я не знаю, как я мог реализовать ее неправильно или что именно это означает, когда в ней говорится ADMIN_ONLY_OPERATION, почему анонимный вход в систему имеет какое-либо отношение к администратору?

Кто-нибудь имеет опыт работы с ошибками такого типа или может видеть какие-либо очевидные ошибки при использовании этой функции?

мой файл firebase.js, в котором у меня есть все функции аутентификации.

import app from 'firebase/app'
import 'firebase/auth'
import 'firebase/database'
import * as firebase from 'firebase';

const config = {
  apiKey: process.env.REACT_APP_API_KEY,
  authDomain: process.env.REACT_APP_AUTH_DOMAIN,
  databaseURL: process.env.REACT_APP_DATABASE_URL,
  projectId: process.env.REACT_APP_PROJECT_ID,
  storageBucket: process.env.REACT_APP_STORAGE_BUCKET,
  messagingSenderId: process.env.REACT_APP_MESSAGING_SENDER_ID,
}

class Firebase {
  constructor() {
    app.initializeApp(config);

    /* Helper */

    this.fieldValue = app.firestore.FieldValue;
    this.emailAuthProvider = app.auth.EmailAuthProvider;

    /* Firebase APIs */

    this.auth = app.auth();
    this.db = app.firestore();
  }

  // *** Auth API ***

  // eslint-disable-next-line max-len
  doCreateUserWithEmailAndPassword = (email, password) => this.auth.createUserWithEmailAndPassword(email, password)

  // eslint-disable-next-line max-len
  doSignInWithEmailAndPassword = (email, password) => this.auth.signInWithEmailAndPassword(email, password)

  doSignInAnonymously = () => {

    this.auth.signInAnonymously()
  }

код на сайте звонка:

<Button
        variant="contained"
        color="primary"
        onClick={() => firebase
          .doSignInAnonymously()
          .then(({ user }) => {
            localStorage.setItem(process.env.REACT_APP_LOCAL_STORAGE, JSON.stringify(user))
            history.push(ROUTES.USER)
          })
          .catch(({ message }) => setErrMessage(message))
        }
      >
        Continue As Guest
      </Button>
  • Я попытался удалить следующую строку, так как ошибка связана с искаженным JSON, но, похоже, это не помогает.

    localStorage.setItem (process.env.REACT_APP_LOCAL_STORAGE, JSON.stringify (пользователь))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...