FirebaseAuth-复制修改的用户登录名/电子邮件

时间:2018-12-05 11:12:22

标签: java swift firebase firebase-authentication

使用用户对象的@Override public List<BrojPolice> dohvatiBrojPolice() { List<BrojPolice> filter = jdbcTemplate.query("SELECT*FROM ins2.kalk_cpi;",new Object[]{}, (rs,rowNum) ->{ BrojPolice bp = new BrojPolice(); bp.setBroj(rs.getString("BROJ_POLICE")); return bp; }); return filter; } @Override public List<BrojPolice> dohvatiBrojPolice2() { List<BrojPolice> filter2 = jdbcTemplate.query("SELECT*FROM ins_RAZNO.ADND_DATOTEKA;",new Object[]{}, (rs,rowNum) ->{ BrojPolice bp = new BrojPolice(); bp.setBroj(rs.getString("BROJ_POLICE")); return bp; }); return filter2; } public List<String> brojPolice(){ boolean match = dohvatiBrojPolice().contains(dohvatiBrojPolice2()); //ideas? return //List } 方法,更改当前登录用户的电子邮件地址就可以了,但是看起来好像该更改没有复制到其他登录名中,而其他登录名仍然保留以前的电子邮件地址

我是否需要订阅/捕获任何通知才能通过此类更改得到通知?还是有另一种方式来实现这一目的?

1 个答案:

答案 0 :(得分:0)

我,作为Firebaser的老手,我经常阅读文档,就像很多一样。由于没有内置的,我确实有解决方法。

首先,如果您为每个用户提供多个会话,则需要使用reauthenticate方法。

  

重新验证用户

     

一些对安全性敏感的操作,例如删除帐户,设置   主电子邮件地址,并更改密码-要求用户   最近登录。如果您执行以下操作之一,并且   用户登录时间太久,操作失败并显示   FIRAuthErrorCodeCredentialTooOld错误。当这个情况发生时,   通过从以下位置获取新的登录凭据来重新认证用户   用户并传递凭据以进行重新认证。例如:

let user = Auth.auth().currentUser
var credential: AuthCredential

// Prompt the user to re-provide their sign-in credentials

user?.reauthenticate(with: credential) { error in
  if let error = error {
// An error happened.
  } else {
// User re-authenticated.
  }
}

使用此方法,由于凭据过旧,您会在90%的时间内出现错误。

或者:

(1)在更改过程中。为您的实时数据库或Firestore上的用户设置特定密钥, (2)检查您的应用程序上是否存在该特定密钥。这意味着用户需要重新认证。 Firebase将在每次新登录时更新用户凭据。

我希望它会有所帮助。 这是文档:

Manage users on Firebase