我正在编写一个Android应用程序并为用户使用firebase匿名身份验证.当程序首次安装在设备上时,我使用该设备的匿名登录来创建唯一ID,然后将其存储在内存中,然后始终将该唯一ID用作该设备的唯一用户名.这是我的代码:
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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
在这里我关心那个id的独特性.firebase匿名登录是否在在线匿名用户中提供唯一ID,或者它是否提供基于应用程序的唯一ID?这两个设备有可能被赋予相同的ID吗?如果有机会,我在哪里可以检查该ID是否存在?(我还将给定的id存储在firebase存储库中,我想检查之前是否给出了id).
谢谢
| 归档时间: |
|
| 查看次数: |
1388 次 |
| 最近记录: |