Как я могу преобразовать свои данные из firestore в пользователей для аутентификации

# #firebase #google-cloud-firestore #firebase-authentication #google-forms #zapier

Вопрос:

Я использую Zapier, чтобы получить ответы из Google Форм и переместить их в коллекцию Firestore, но мне нужно получить эти данные (включая имя, пароль и электронную почту) и превратить их в пользователей в модуле аутентификации Firebase, есть ли способ сделать это автоматически?

Мне нужно, чтобы регистрация выполнялась исключительно с помощью форм Google, но я знаю только обратный способ (аутентификация в firestore).

Ответ №1:

Вы можете использовать облачную функцию, которая запускается при создании нового документа в коллекции Firestore.

Давайте представим, что коллекция, заполненная Zapier, называется usersCreationRequests . Следующая облачная функция сделает свое дело:

 const functions = require('firebase-functions');
const admin = require('firebase-admin');
    
admin.initializeApp();
    
exports.createUser = functions.firestore
    .document('usersCreationRequests/{userDocId}')
    .onCreate((snap, context) => {
  
        return admin
            .auth()
            .createUser({
                email: snap.get('email'),
                password: snap.get('password'),
                displayName: snap.get('name')
            })
            .then((userRecord) => {
                console.log('Successfully created new user:', userRecord.uid);
                return null;
            })
            .catch((error) => {
                console.log('Error creating new user:', error);
                return null;
            });
    });
 

Комментарии:

1. Использование идентификатора userDocId аутентификации as Firebase также может быть хорошей идеей 😀

2. @Дхармарадж Да, это может быть интересно, но у нас нет никаких подробностей из ОП по этому вопросу.

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

4. Вам не нужно платить, вам нужна кредитная карта, но есть очень щедрый бесплатный уровень, и если вы не превысите лимит, вы ничего не заплатите.

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