# #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 и у меня нет кредитной карты, чтобы пользоваться ею самостоятельно, и этот проект я делаю для нее. Но вы мне очень помогли, я ценю это 🙏