Firebase匿名登录问题
我正在编写一个android应用程序,并为用户使用firebase匿名身份验证。当程序第一次安装在设备上时,我使用该设备的匿名登录创建唯一id,然后将其存储在内存中,然后始终使用该唯一id作为该设备的唯一用户名。这是我的密码:Firebase匿名登录问题,firebase,Firebase,我正在编写一个android应用程序,并为用户使用firebase匿名身份验证。当程序第一次安装在设备上时,我使用该设备的匿名登录创建唯一id,然后将其存储在内存中,然后始终使用该唯一id作为该设备的唯一用户名。这是我的密码: public String getUserId() { SharedPreferences prefs = getSharedPreferences("USER_ID", Context.MODE_PRIVATE); String
public String getUserId() {
SharedPreferences prefs = getSharedPreferences("USER_ID",
Context.MODE_PRIVATE);
String id = prefs.getString("USER_ID", "NOT_FOUND");
return id;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String userId = getUserId();
if (userId.equals("NOT_FOUND")) {
if (f == null) {
f = new Firebase(
"https://marketlist.firebaseio.com/sharedlists");
}
try {
Firebase ref = f.getParent();
SimpleLogin authClient = new SimpleLogin(ref);
authClient
.loginAnonymously(new SimpleLoginAuthenticatedHandler() {
@Override
public void authenticated(Error error, User user) {
if (error != null) {
System.out.println("");
} else {
// We are now logged in
String id = user.getUid();
SharedPreferences prefs = getSharedPreferences(
"USER_ID", Context.MODE_PRIVATE);
prefs.edit().putString("USER_ID", id)
.commit();
}
}
});
Firebase.goOffline();
} catch (Exception ex) {
Firebase.goOffline();
}
}
}
在这里,我关心的是该id的唯一性。firebase匿名登录是否在在线匿名用户中提供了唯一的id,还是提供了基于应用程序的唯一id?这里有没有可能两台设备被赋予相同的id?如果有机会,我在哪里可以检查该id是否存在?(我还将给定的id存储在firebase存储库中,我想检查该id以前是否已给定)
感谢为匿名身份验证生成的UID。非常类似于,它使用当前时间戳和随机性的组合来产生本质上唯一的id。非常、非常、非常不可能有另一个用户具有相同的id,甚至应用程序都不应该检查
但是,如果您真的想检查,您可以让您的客户使用Firebase事务写入
/users/
,并确保以前没有其他客户写入该位置。谢谢您的回答!