我正在尝试创建Firebase登录和注册应用。我已经设置了在注册时android id将保存到数据库。如果Android ID退出其他帐户,则用户无法创建帐户。当我运行应用程序并尝试注册一个帐户时,它的节目"注册请等待......"并且没有发生。我怎样才能解决这个问题?
答案 0 :(得分:0)
将代码更改为此。
if(task.isSuccessful()){
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
rootRef.child(firebaseAuth.getCurrentUser().getUid()).child("Id").setValue(android_id);
progressDialog.dismiss();
startActivity(new Intent(getApplicationContext(), ProfileActivity.class));
finish();
}
并在取消查询时关闭progressDialog
@Override
public void onCancelled(DatabaseError databaseError) {
progressDialog.dismiss();
}
});
答案 1 :(得分:0)
要解决此问题,您建议使用Firebase Authentication。
它很容易实现,并且您将来不会有任何代码需要维护。
要查找Android设备的序列号,请使用以下代码:
TelephonyManager tManager = (TelephonyManager)myActivity.getSystemService(Context.TELEPHONY_SERVICE);
String androidSerialNumber = tManager.getDeviceId();
拥有此androidSerialNumber
,您可以使用它将其保存在数据库中。
0down voteaccepted
另一种方法是改变数据库规则:
{ "rules":
{ ".read": "true",
".write": "auth != null"
}
}