每当用户注销并尝试再次登录时,树中的所有属性都会JSON
重新初始化。
这是我的代码:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_SIGN_IN) {
IdpResponse response = IdpResponse.fromResultIntent(data);
if (resultCode == RESULT_OK) {
// Sign-in succeeded, set up the UI
FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
FirebaseUserMetadata metadata =mFirebaseAuth.getCurrentUser().getMetadata();
if (metadata.getCreationTimestamp() == metadata.getLastSignInTimestamp()) {
// The user is new, show them a fancy intro screen!
User user = new User(firebaseUser.getUid(), firebaseUser.getDisplayName(), firebaseUser.getEmail());
mDatabaseReference.child(user.getId()).setValue(user);
} else {
// This is an existing user, show them a welcome back screen.
Intent intent = new Intent(MainActivity.this, HomeActivity.class);
startActivity(intent);
}
} else if (resultCode == RESULT_CANCELED) {
// Sign in was canceled by the user, finish the activity
Toast.makeText(this, "Sign in canceled", Toast.LENGTH_SHORT).show();
finish();
}
I tried to use user’s metadata but even that didn’t work.
Here is my JSON
structure
如果我们要检查用户是否是新用户,则是相同的,如果我们检查
用户是否是首次登录。因此,要解决此问题,我们可以像 这样
isNewUser()
在OnCompleteListener.onComplete
回调中简单地调用方法
:
OnCompleteListener<AuthResult> completeListener = new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
boolean isNewUser = task.getResult().getAdditionalUserInfo().isNewUser();
if (isNewUser) {
Log.d("TAG", "Is New User!");
} else {
Log.d("TAG", "Is Old User!");
}
}
}
};
有关更多信息,, please see the official
doc.
(注意:这与我发布的问题有关,但由于我最初的问题得到了回答,而我现在遇到了一个不同的问题,所以我将此作为一个新问题发布。) 我正在设置注册和登录一个使用DynamoDB和AWS Cognito的iOS应用程序。我最终让注册登录过程正常工作,但我注意到,每当我注销并立即尝试重新登录时,应用程序都会失败,我会收到错误消息
我正在尝试清除会话,并在会话超时时将用户注销,并重定向到登录页面。登录页是帐户控制器中的登录方法返回的部分视图。当会话超时时,登录视图会在当前页面中呈现用户在会话超时之前所在的页面以及URL。 Web.config
cmf_get_current_user() 功能 获取当前登录的前台用户的信息,未登录时,返回false 参数 无 返回 array:用户信息;false表示未登录;
用户登录 在用户登录App账号时调用以下登录方法,从而保证用户是以登录身份进行咨询,是区分会话的用户的唯一标识; 游客咨询不需要调用小能login方法,小能会自动生成一个游客身份标识,在客服端游客身份的用户名显示为:“游客+4位数字”。 App完全退出(被杀掉进程), 再次进入时, 在SDK初始化之后, 如果App本身账号是登录用户, 需要重新调用小能SDK登陆接口,同步用户身份【大多是针对App
登录与注销 用户登录 在App登录的地方,调用小能的login方法,目的是传递账号信息,为客服端显示用户信息。在App被杀死之后,sdk会保持用户的登录状态,不需要再次调用登录的方法。 uid作为用户的唯一标识需要保证唯一性,username可根据需要传入手机号、昵称等信息 /** * @param uid 必填,登录用户的id, 只能输入数字、英文字母和"@._—"四种字符,长度小于等于60位
在我的Laravel应用程序中,我有一个只能由Auth用户访问的私人页面。我也使用社交登录,所以当用户未登录就进入私人页面时,Laravel会将用户发送到登录页面,成功登录后,用户会被发送回原始目的地(私人页面)。只有当用户通过Laravel内置认证系统登录时,但当用户通过社交登录方法登录时,用户将被引导到主页。 这是我登录后的社交登录处理程序: 如果用户在会话中出现,我如何将其发送到原始目的地,