我将 firebase 数据库升级到 9.2.0 版。firebase uid 曾经是 google:(google signin id),但是现在不匹配了。
升级前——
谷歌登录 uid = 101672719428298324455
Firebase uid = 谷歌:101672719428298324455
升级后——
谷歌登录 uid = 101672719428298324455
Firebase uid = fcojpImyQWTHp02YzWYsRezShKP2
google uid 是由其他服务(例如classroom)返回的,因此,我们需要使用它作为uid 来判断它是哪个用户。我们将更新 users 字段以使用 google 登录 uid 而不是 firebase 。
但是,那么,我们如何使用谷歌登录 uid 和升级后的 Firebase 为身份验证编写安全规则?规则的具体用例是教师可以阅读学生的成绩单。谷歌课堂为班级名册提供的教师和学生 uid 与谷歌登录 uid 匹配,而不是 firebase uid。
在升级后用于登录的代码下方 -
FirebaseAuth auth = FirebaseAuth.getInstance();
AuthCredential credential = GoogleAuthProvider.getCredential(token, secret);
auth.signInWithCredential(credential).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
// Authenticated successfully with payload authData
AuthResult result …Run Code Online (Sandbox Code Playgroud)