【问题标题】:how to update with angular firebase?如何使用 Angular Firebase 进行更新?
【发布时间】:2018-02-15 16:27:22
【问题描述】:

我正在使用 afb 成功检索用户:

//retrieve users        
afb.collection('Users').valueChanges()
.subscribe(results => { 
this.users = results;
 })

但是我需要通过 id 更新用户的 LoginCount 属性:

var user = this.users.find(x => x.UserId === userId);   
user.LoginCount = user.LoginCount + 1;
afb.doc('/Users/' + user.$key).update(user);

这似乎是在 Angular Firebase 中进行更新的正确方法吗?我遇到的第一个问题是找到的用户没有 $key 属性。我需要做些什么来确保我的数据库/查询代码在返回的记录中包含 $key 属性?

【问题讨论】:

    标签: javascript angular firebase firebase-realtime-database


    【解决方案1】:

    当您编写 console.log(x.UserId) 时,您是否在控制台中获得与该用户身份验证中的 id 匹配的 id?如果是,那么用户的参数是什么?你想更新什么?

    如果您想在人员登录时增加一些对象,以对其进行计数,您应该在数据库中创建新节点来为每个用户计数。这是一种方式:

    this.afb.object(`/counters/${this.x.UserId}/logcounter`).query.ref.transaction((logcounter =>{
                if(logcounter === null){
                  return logcounter = 1;
                } else {
                  return logcounter + 1;
                }
    
            }));
    

    如果你写console.log(x.UserId)没有得到用户id,你可以得到它:

    this.fire.authState.subscribe(user => {
          if (user) {
            this.UserId = user.uid;
    
          }
        });
    

    比更改:${this.x.UserId} 为 ${this.UserId}。 希望这对你有帮助,干杯!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多