Похоже, вы пытаетесь сделать пользователя «золотым» @ «%», но другой пользователь по имени «золотой» @ «localhost» мешает / имеет приоритет.
Выполните эту команду, чтобы увидеть пользователей:
SELECT user,host FROM mysql.user;
Вы должны увидеть две записи:
1) user = golden, host =%
2) user = golden, host = localhost
Выполните следующие команды:
DROP User 'golden'@'localhost';
DROP User 'golden'@'%';
Перезапустите Workbench MySQL.
Затем выполните свои исходные команды снова:
CREATE USER 'golden'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'golden'@'%';
Затем, когда вы пытаетесь войти в MySQL, введите его так:
Нажмите «Проверить соединение» и введите пароль «password».
Внутри первого вызова (после ... Persistence.LOCAL) у вас есть объявление функции. В отличие от функций стрелок, он не будет поддерживать текущий контекст, поэтому, когда вы используете this.router
, , этот будет контекстом указанной выше функции.
Таким образом, предупреждение правильное, вы не используете маршрутизатор, определенный в классе, вы используете неопределенное свойство маршрутизатора в контексте функций. Вероятно, вы не видите какой-либо ошибки, потому что тогда нет внутреннего улова.
Самый быстрый способ исправить это - использовать функции стрелок во всех местах, например:
signinUser(email: string, password: string) {
firebase.auth().setPersistence(firebase.auth.Auth.Persistence.LOCAL)
.then(() => firebase.auth().signInWithEmailAndPassword(email, password)
.then(
response => {
...
Вы можете найти дополнительную информацию о здесь .