Я работаю над многопользовательским приложением, использующим Angular и Firebase в сочетании с Google Cloud Identity Platform. Последний является частью аутентификации Firebase и позволяет мне группировать пользователей с разными арендаторами, плюс он добавляет свойство tenantId пользователю. Все мои пользователи и подколлекция документа арендатора.
Задача, с которой я столкнулся, заключается в том, чтобы вовремя получить пользователя, вошедшего в систему, через API-интерфейс авторизации Firebase, чтобы выполнить запрос и вывести список всех пользователей. для данного арендатора.
Представьте себе, что вошли пользовательские вставки в адресную строку браузера URL http://tenant.domain.com/users. Чтобы получить эти данные, мне нужно знать «tenantId», который должен прийти через зарегистрированного пользователя, который разрешается позже, чем я делаю свой запрос.
Я получаю текущего пользователя, используя следующий код:
getCurrentUser() {
return new Promise<any>((resolve, reject) => {
var user = firebase.auth().onAuthStateChanged(function (user) {
if (user) {
resolve(user);
} else {
reject('No user logged in');
}
})
});
}
В основном я ищу, чтобы "tenantId" был доступен в любое время и в любом месте приложения.