Прямо сейчас, когда я создал учетную запись, я записал регистрационную информацию в базу данных.
В качестве имени документа задан UID пользователя, который Firebase предоставит пользователю.Теперь вы можете просто запросить данные из базы данных с UID пользователя как .doc(user.uid)
.
Это полный код.
var htmlEmail = document.getElementById('email').value;
var htmlPass = document.getElementById('password').value;
var htmlUser = document.getElementById('username').value.toLowerCase();
var auth = firebase.auth();
var promise = auth.createUserWithEmailAndPassword(htmlEmail, htmlPass);
// If there is any error stop the process.
promise.catch(function (error) {
var errorCode = error.code;
console.log(`GOT ERROR: ` + errorCode)
if (errorCode == 'auth/weak-password') return // password to weak. Minimal 6 characters
if (errorCode == 'auth/email-already-in-use') return // Return a email already in use error
});
// When no errors create the account
promise.then(function () {
var userUid = auth.currentUser.uid;
var db = firebase.firestore();
db.collection('users').doc(userUid).set({
email: htmlEmail,
emailVertified: false,
name: htmlUser,
online: false,
onlock: false,
password: htmlPass
});
Тогда, когда пользователь входит в систему, вы можете просто запросить данные через user.uid.
var auth = firebase.auth();
firebase.auth().onAuthStateChanged(function (user) {
// Lay connection with the database.
var firestore = firebase.firestore();
var db = firestore.collection('users').doc(user.uid);
// Get the user data from the database.
db.get().then(function (db) {
// Catch error if exists.
promise.catch(function (error) {
// Return error
});
promise.then(function () {
// continue when success
});
});
});
Может быть, есть лучшие способы.(все еще учусь сам).Но это помогает мне и работает очень хорошо.
Необходимо помнить 2 вещи!
- Я бы порекомендовал Firestore для базы данных в реальном времени, так как она быстрее и безопаснее.
- Убедитесь, что правила вашей базы данных установлены правильно, чтобы никто не мог просмотреть / утечь информацию о вашей базе данных.(как вы регистрируете личную информацию пользователей).Если он не установлен правильно, пользователи смогут просматривать вашу базу данных и даже удалять все данные.
Надеюсь, это поможет:)
Если вы сами найдете лучший способ, сообщите нам об этом здесь.Мы могли бы извлечь уроки из этого!