Мне нужно зарегистрировать много сгенерированных пользователей в Firebase из веб-приложения. Я не нашел никаких методов в API Reference of Firebase, чтобы сделать это в одном запросе, поэтому я вызываю createUserWithEmailAndPassword для каждой сгенерированной пары электронная почта / пароль. После регистрации 100 пользователей я получаю ошибку auth / too-many-reports и не могу отправлять запросы в течение 30 минут или более из-за того, что Firebase блокирует все запросы с устройства.

Как предотвратить блокирование моего приложения в консоли Firebase или что написать для этого в коде веб-приложения? Я использую стандартное соединение Firebase:

const config = {
apiKey: 'my-api-key',
authDomain: 'my-project.firebaseapp.com',
databaseURL: 'https://my-project.firebaseio.com',
storageBucket: 'my-project.appspot.com',
messagingSenderId: 'my-sender-id'};
firebase.initializeApp(config);

И зарегистрируйте каждого из 100 пользователей с помощью createUserWithEmailAndPassword:

firebase.auth().createUserWithEmailAndPassword(email, password)

Я звоню на все запросы с использованием Promise.all

firebase.Promise.all(registerRequests)

Где запрос на регистрацию - обещание createUserWithEmailAndPassword

2
Rock'n'muse 11 Янв 2017 в 08:35

3 ответа

Лучший ответ

Я предлагаю использовать Admin node.js SDK. У вас будет привилегированный доступ, чтобы создавать столько пользователей электронной почты и паролей, сколько вы хотите, без ограничения. https://firebase-dot-devsite.googleplex.com/docs / авт / администратор / управления пользователями

6
bojeil 11 Янв 2017 в 22:18

API createUserWithEmailAndPassword() предназначен для использования обычными пользователями при регистрации в вашем приложении. Как таковой, он имеет довольно низкий предел скорости, чтобы предотвратить злоупотребления.

Если вы хотите массово создавать пользователей, вы должны использовать команду auth:import в Инструменты Firebase CLI. Это специально сделано для этой цели, и не имеет такого ограничения скорости.

4
Frank van Puffelen 11 Янв 2017 в 14:02

Ваша проблема сводится к ограничениям Firebase Spark, которые утверждают, что разрешено только 100 одновременных подключений. И когда вы создаете нового пользователя, вы устанавливаете новое соединение с БД.

Пользователь Firebase имеет фиксированный набор основных свойств - уникальный идентификатор, основной адрес электронной почты, имя и URL-адрес фотографии - хранящиеся в пользовательской базе данных проекта, которые могут обновляться пользователем (iOS, Android, Интернет).

Пользователи в проекте Firebase.

В качестве обходного пути попробуйте создать новую конфигурацию после создания 100 пользователей, как указано здесь Пределы проверки подлинности Firebase.

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

0
Community 23 Май 2017 в 12:01