1

我正在使用 Angular 并想在 Firebase 中添加新用户,一切正常,没有任何错误,但是当我打开 firebase 数据库时,它没有显示任何数据并在控制台中显示错误

FIREBASE 警告:设置在 /users/zJJNe15WyDW0TYh5L2khIp9BeH62 失败:permission_denied

更改规则allow read, write: if true;后,错误更改为

未捕获的错误:网络错误

空 Firebase 数据库

这是我想添加新用户的服务

export class UserService {    
  constructor(private db : AngularFireDatabase) { }    
  save(user : firebase.User)
  {
    this.db.object('/users/' + user.uid).update({
      name : user.displayName,
      email : user.email
    });
  }
}

这是这项服务的进口

import { Injectable } from '@angular/core';
import { AngularFireDatabase } from 'angularfire2/database';
import * as firebase from 'firebase';

这是 app.component

export class AppComponent {
  constructor(private userService: UserService ,private auth : AuthService, private router :Router)
  {
    auth.user$.subscribe(user => {
      if (user)
      {
        userService.save(user);

        let returnUrl = localStorage.getItem('returnUrl');
        router.navigateByUrl(returnUrl);
      }
    });
  }
}

我使用firebase进行登录,它可以完美地工作,其他功能也可以正常工作,但在这里它不会在firebase中保存新用户。

4

1 回答 1

1

您应该使用set创建文档- https://firebase.google.com/docs/firestore/manage-data/add-data#add_a_document

您用于update更新字段- https://firebase.google.com/docs/firestore/manage-data/add-data#update-data

尝试:

save(user : firebase.User)
  {
    this.db.object('/users/' + user.uid).set({
      name : user.displayName,
      email : user.email
    });
  }

编辑:您似乎遇到了“未捕获的错误:网络错误”。这可以通过以下问题解决 -未捕获的错误:网络错误

于 2019-02-27T19:44:06.757 回答