#angular #firebase #firebase-authentication #angularfire2
# #angular #firebase #firebase-аутентификация #angularfire2
Вопрос:
Я использовал следующий метод входа в систему:
login() {
this.auth.login();
this.authService.login().subscribe(() => {
if (this.authService.isLoggedIn) {
console.log("ADDING THE USER..");
// Add a new user to the users table
this.af.child("users").child(this.authService.userData.uid).set({
provider: this.authService.userData.provider,
name: this.getName(this.authService.userData)
});
// Redirect the user
this.router.navigate(['/panel']);
}
});
}
Который почти такой же, как метод в документации: https://www.firebase.com/docs/web/guide/user-auth.html#section-storing
Когда я запускаю свое приложение, я получаю следующую ошибку:
Property 'child' does not exist on type 'AngularFire'.
и пользователь не добавляется. Что не так?
Все, что мне нужно, это добавить новый объект в мою базу данных Firebase. Работает следующее, но мне нужна структура, как показано выше:
this.users = this.af.database.list('/users');
this.users.push("TEST");
Итак, как я могу добавить новый пользовательский объект в свою базу данных, используя ту же структуру в https://www.firebase.com/docs/web/guide/user-auth.html#section-storing ? и почему я не могу запустить свой код, если он совпадает с документированным?
Обновить
Мой новый код:
this.af.database.object('/users/${this.authService.userData.uid}').set({
provider: this.authService.userData.provider,
name: this.getName(this.authService.userData)
});
- Пользователь не вставлен (моя база данных firebase пуста)
Комментарии:
Ответ №1:
Использовать object()
; дочерний элемент() не существует:
this.af.database.object(`users/${this.authService.userData.uid}`).set({...})
Комментарии:
1. Классный, спасибо. но вы забыли добавить
.database
после.af
. В любом случае, я понятия не имею, почему, но в мою базу данных ничего не добавляется. Обновлен мой код2. Вы получаете сообщение об ошибке? Ваши правила безопасности в порядке?
3. Я не получаю никакой ошибки. Мои правила таковы:
{ "rules": { ".read": "true", ".write": "true" } }
в моей консоли базы данных firebase я вижу толькоnull
4. Ну, есть проблема с тем, что у меня внутри
set
, но ошибок вообще нет. в любом случае, я понял. Спасибо.
Ответ №2:
Это более короткая версия.
import { AngularFireDatabase } from "angularfire2";
...
constructor(private afd: AngularFireDatabase) {}
...
this.afd.object(`users/${this.authService.userData.uid}`).set({...});