Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Firebase实时数据库&;认证_Android_Firebase_Firebase Realtime Database_Firebase Authentication - Fatal编程技术网

Android Firebase实时数据库&;认证

Android Firebase实时数据库&;认证,android,firebase,firebase-realtime-database,firebase-authentication,Android,Firebase,Firebase Realtime Database,Firebase Authentication,我最近在后端工作中采用了Firebase。使用Firebase,我希望将所有用户数据(如用户名、电话号码等)存储到Firebase的同一注册表活动中,而不仅仅是电子邮件和密码。我怎样才能做到这一点 我的注册表活动仅在安装时显示。当用户注册到我的应用程序时,我正在销毁该活动。因此,没有进一步的RegisterActivity实例 注册表活动-onCreate(): submitform(): authUser(): 我想在注册期间将姓名、电子邮件和电话保存在firebase数据库中,并在注册后销毁

我最近在后端工作中采用了Firebase。使用Firebase,我希望将所有用户数据(如用户名、电话号码等)存储到Firebase的同一
注册表活动中,而不仅仅是电子邮件和密码。我怎样才能做到这一点

我的
注册表活动
仅在安装时显示。当用户注册到我的应用程序时,我正在销毁该活动。因此,没有进一步的
RegisterActivity
实例

注册表活动-onCreate()

submitform()

authUser()

我想在注册期间将姓名、电子邮件和电话保存在firebase数据库中,并在注册后销毁活动。

我现在正在处理。问题是,登录(身份验证)和注册(注册)是两件不同的事情

我所做的是有两个独立的活动,签名。。。及注册(登记)

一旦用户注册(电子邮件和密码),他们将拥有Firebase已知的唯一用户ID

接下来,它们进入注册活动,因此当您在此活动中“上载”EditText中的所有数据时,您可以将它们上载到数据库中与用户ID匹配的节点(键…索引)。。。因此,数据库中的数据如下所示:

\mydatabase\users\[uniqueID]\


如果您将两个活动(身份验证和注册)合并为一个。。。由于有许多字段,“电子邮件、密码、姓名、电话号码等”都包含在一个活动中,因此下次他们在会话过期的情况下运行应用程序时,您仍然需要进行单独的仅登录活动。我认为做两个单独的活动要简单得多

我有一个活动,我只是尝试立即注册,不管用户是否存在,然后如果错误是由于电子邮件已经存在,我会登录用户,而不是注册他们

mAuth = FirebaseAuth.getInstance();
mAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {                       
if (!task.isSuccessful()) {
if(task.getException() instanceof FirebaseAuthUserCollisionException) {
// login user
}
else {
// handle error
}
}    
else {
// register user
}
}
mAuth=FirebaseAuth.getInstance();
mAuth.createUserWithEmailAndPassword(电子邮件,密码)
.addOnCompleteListener(这是新的OnCompleteListener(){
@凌驾
公共void onComplete(@NonNull任务){
如果(!task.issusccessful()){
if(FirebaseAuthUserCollisionException的task.getException()实例){
//登录用户
}
否则{
//处理错误
}
}    
否则{
//注册用户
}
}

您可以添加用户配置文件信息和其他详细信息,如

用于更新配置文件

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();

UserProfileChangeRequest profileUpdates = new UserProfileChangeRequest.Builder()
        .setDisplayName("Jane Q. User")
        .setPhotoUri(Uri.parse("https://example.com/jane-q-user/profile.jpg"))
        .build();

user.updateProfile(profileUpdates)
        .addOnCompleteListener(new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {
                if (task.isSuccessful()) {
                    Log.d(TAG, "User profile updated.");
                }
            }
        });
FirebaseUser user=FirebaseAuth.getInstance().getCurrentUser();
UserProfileChangeRequest profileUpdates=新建UserProfileChangeRequest.Builder()
.setDisplayName(“Jane Q.User”)
.setPhotoUri(Uri.parse(“https://example.com/jane-q-user/profile.jpg"))
.build();
user.updateProfile(profileUpdates)
.addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
Log.d(标签“用户配置文件更新”);
}
}
});

有关管理用户详细信息的详细信息,请参阅此链接

我们需要更多信息来帮助您。例如,向我们展示您在
注册表活动
中的代码,并准确解释问题所在以及您遇到的问题。@XaverKapeller我已编辑了我的查询。请查看一下!!谢谢您想要添加类似于向经过身份验证的用户发送ile pic、电话号码或其他信息?我有两个单独的登录和注册活动。但在注册过程中,我希望将用户名、电子邮件和电话保存在数据库中,并将用户定向到
MainActivity
。在您的问题中有三件事,即登录、注册和注册。因此,如果没有注册,用户将无法登录和注册注册是完全不同的事情。但我们或多或少都有相同的问题。我想如果@XaverKapeller看一看,他会有一个比我能给你的更好的答案……尽管我在我的帖子中描述了一些可能的解决方案。但是他们会无缘无故地填写所有这些注册表格,不是吗?他们会的所以你可能会感到困惑,认为他们的帐户已经被删除了。对我来说,这只是一个简单的电子邮件和密码登录,因此他们不需要在登录时再次填写一份巨大的注册表。
private void authUser() {

    mFirebaseAuth.createUserWithEmailAndPassword(EMAIL, PASSWORD).addOnCompleteListener(RegisterActivity.this, new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {

            if (!task.isSuccessful()) {
                AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this);
                builder.setMessage(task.getException().getMessage())
                        .setTitle("Error")
                        .setPositiveButton(android.R.string.ok, null);
                AlertDialog dialog = builder.create();
                dialog.show();
                progressBar.setVisibility(View.GONE);
            } else {
                progressBar.setVisibility(View.GONE);

                Intent intent = new Intent(RegisterActivity.this, MainActivity.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
                startActivity(intent);
            }
        }

    });
}
private void runAtInstallation() {

    SharedPreferences pref = getSharedPreferences("ActivityPREF", Context.MODE_PRIVATE);
    if (pref.getBoolean("activity_executed", false)) {

        Intent act = new Intent(getApplicationContext(), MainActivity.class);
        act.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        act.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
        startActivity(act);
        finish();
    } else {
        SharedPreferences.Editor ed = pref.edit();
        ed.putBoolean("activity_executed", true);
        ed.commit();
    }
}
mAuth = FirebaseAuth.getInstance();
mAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {                       
if (!task.isSuccessful()) {
if(task.getException() instanceof FirebaseAuthUserCollisionException) {
// login user
}
else {
// handle error
}
}    
else {
// register user
}
}
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();

UserProfileChangeRequest profileUpdates = new UserProfileChangeRequest.Builder()
        .setDisplayName("Jane Q. User")
        .setPhotoUri(Uri.parse("https://example.com/jane-q-user/profile.jpg"))
        .build();

user.updateProfile(profileUpdates)
        .addOnCompleteListener(new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {
                if (task.isSuccessful()) {
                    Log.d(TAG, "User profile updated.");
                }
            }
        });