首页 文章

Android Firebase实时数据库替换数据而不是添加新数据

提问于
浏览
0

我正在尝试将数据插入Firebase实时数据库 . 我的应用程序的逻辑是在用户注册时在数据库的users列下创建一个包含用户名和密码的新字段 .

注册时,该应用需要电子邮件,用户名和密码 . 我正在使用Firebase Auth执行此操作 . 当我运行应用程序时,我可以注册并成功地在数据库中插入值,但只要新用户注册而不是创建新用户,数据库中的值就会被替换 . 如果我做错了,请帮忙 . 这是我的代码 .

firebaseAuth.createUserWithEmailAndPassword(email, password)
                .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                        UserInformation userInformation = new UserInformation(username,password);
                        //checking if success
                        if(task.isSuccessful()){

                            databaseReference.child("users").setValue(userInformation);
                            Toast.makeText(MainActivity.this,"Successfully registered",Toast.LENGTH_LONG).show();
                            finish();
                            startActivity(new Intent(getApplicationContext(), ProfileActivity.class));
                        }else{
                            //display some message here
                            Toast.makeText(MainActivity.this,"Registration Error",Toast.LENGTH_LONG).show();
                        }
                        progressDialog.dismiss();
                    }
                });

1 回答

  • 3
    databaseReference.child("users").setValue(userInformation)
    

    这将取代现有数据 . 如果要将值添加为新子项,则需要使用 push() ,这将生成唯一ID,然后插入新数据 . 请尝试下面的代码 .

    databaseReference.child("users").push().setValue(userInformation)
    

相关问题