我想从我的应用程序创建一个新的用户帐户为“管理员用户”,问题是,我只是想创建它实际上没有登录登录时。火力地堡无符号创建用户
是使用电子邮件/密码创建新用户时可以禁用自动登录。
我看到别人已经问过这个问题,关于JS和SWIFT,但似乎无法找到任何Android特定的相关信息。我试图做到同样的事情,但this person与Android
任何帮助赞赏
我想从我的应用程序创建一个新的用户帐户为“管理员用户”,问题是,我只是想创建它实际上没有登录登录时。火力地堡无符号创建用户
是使用电子邮件/密码创建新用户时可以禁用自动登录。
我看到别人已经问过这个问题,关于JS和SWIFT,但似乎无法找到任何Android特定的相关信息。我试图做到同样的事情,但this person与Android
任何帮助赞赏
这里是一个测试的解决方案,你可以申请(之前只是实施了几分钟)。
要创建新的用户帐户,您需要参考FirebaseAuth
。在OnCreate
private FirebaseAuth mAuth1;
private FirebaseAuth mAuth2;
现在你可以初始化它们为:
所以你可以创建一个像两个不同的FirebaseAuth对象
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
mAuth1 = FirebaseAuth.getInstance();
FirebaseOptions firebaseOptions = new FirebaseOptions.Builder()
.setDatabaseUrl("[Database_url_here]")
.setApiKey("Web_API_KEY_HERE")
.setApplicationId("PROJECT_ID_HERE").build();
FirebaseApp myApp = FirebaseApp.initializeApp(getApplicationContext(),firebaseOptions,
"AnyAppName");
mAuth2 = FirebaseAuth.getInstance(myApp);
//..... other code here
}
要获得专案编号,的WebAPI键你可以去项目设置在您的Firebase项目控制台中。
现在创建用户帐户,您必须使用mAuth2,而不是mAuth1。然后在成功注册后,您可以注销该mAuth2用户。
例:
private void createAccount(String email, String password)
{
mAuth2.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (!task.isSuccessful()) {
String ex = task.getException().toString();
Toast.makeText(RegisterActivity.this, "Registration Failed"+ex,
Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(RegisterActivity.this, "Registration successful",
Toast.LENGTH_SHORT).show();
mAuth2.signOut();
}
// ...
}
});
}
,你不必担心(其实不是)点:
管理员只能够创建新的用户帐户。但上述解决方案允许所有经过身份验证的用户创建新的用户帐户。
所以要解决这个问题,你可以帮助你的firebase实时数据库。只需添加一个如“is_user_admin
”的密钥并将其值从控制台本身设置为true
即可。您只需在用户尝试创建新用户帐户之前验证用户。使用这种方法你可以设置你自己的管理员。
截至目前,我认为没有firebase-admin SDK
为Android。所以可以使用上面的方法。
我很感谢您的回复,但这并不能解决我的问题,这会将用户从系统中注销,并且他们需要重新登录管理员,我希望保持以管理员用户身份登录并创建新的AC,管理员用户可能正在创建多个帐户,因此每次登录后都不能登录并重新登录 – RoRo88
@ RoRo88:在测试后更新了我的答案。现在这将解决您的问题 –
请参阅http://stackoverflow.com/a/38013551/209103 –