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

标签 android firebase-realtime-database firebase-authentication

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

该应用在注册时需要电子邮件、用户名和密码。我正在使用 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();
                    }
                });

最佳答案

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

这将替换现有数据。如果你想将值添加为新的 child ,你将需要使用 push() ,这将生成一个唯一的 id,然后插入新数据。试试下面的代码。

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

关于Android Firebase 实时数据库替换数据而不是添加新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41773559/

相关文章:

java - Android 上的 Google Places API : No route to host

android - 如何修复谷歌播放服务错误

android - Google Play 控制台错误通知 'Device Support Removed'

javascript - 在 Firebase 中找不到数据

ios - 在 Swift 中从 Firebase 检索数据

ios - 如何使用 swift 在 firebase 中添加电话身份验证?

flutter - 使 Flutter 应用程序强制用户选择具有 Firebase 身份验证和 GoogleSignIn 身份验证的帐户

Android:cursor.getCount()

android - 是否存在监听 RecyclerView 项目更改的现有方法?

firebase - 如何在 Firebase 中手动查看经过身份验证的用户的显示名称?