火力地堡实时数据库更新数据 - 的Android的Java

耶尔马兹黑黝黝织:

我在做一个编辑页面中火力地堡的用户配置文件。我已经尝试了几种不同的方式。但我不能更新。只需添加一个新用户到数据库。

我在警告对话框中获得新的价值。请帮我。

我的更新方法的代码是:

public void editAlert() {
        LayoutInflater layoutInflater = LayoutInflater.from(ProfilePage.this);

        View design = layoutInflater.inflate(R.layout.edit_profile, null);

        final EditText editTextUserName = design.findViewById(R.id.username_editTextProfileEdit);

        final EditText editTextRealName = design.findViewById(R.id.realName_editTextProfileEdit);

        final EditText editTextSurname = design.findViewById(R.id.username_editTextProfileEdit);

        final EditText editTextEmail = design.findViewById(R.id.email_editTextProfileEdit);

        final EditText editTextPassword = design.findViewById(R.id.password_editTextProfileEdit);


        AlertDialog.Builder alertDialoga = new AlertDialog.Builder(ProfilePage.this);
        alertDialoga.setTitle("Edit Profile");
        alertDialoga.setView(design);
        alertDialoga.setPositiveButton("Finish", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                String username = editTextUserName.getText().toString().trim();
                String realName = editTextRealName.getText().toString().trim();
                String surname = editTextSurname.getText().toString().trim();
                String email = editTextEmail.getText().toString().trim();
                String password = editTextPassword.getText().toString().trim();
                String admin = "false";
                String url = "test_url";


                String key = myRef.push().getKey();

                Users user = new Users(key,username,realName,surname,email,password,url,admin);


                HashMap<String,Object> data = new HashMap<>();

                data.put("user_email", email);
                data.put("user_name", realName);
                data.put("user_password", password);
                data.put("user_surname", surname);
                data.put("username", username);

                myRef.child(user.getUser_id()).updateChildren(data);

                Toast.makeText(ProfilePage.this, "Uptaded!", Toast.LENGTH_SHORT).show();
            }
        });

        alertDialoga.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {

            }
        });

        alertDialoga.show();
    }

我创建用户代码的:

  // Sign Up Method
    // Kullanıcı Kayıt etme metodu
    public void signUp(View view) {
        UUID uuid = UUID.randomUUID();
        final String imageName = "ProfileImages/"+uuid+".jpg";
        final ProgressDialog dialog = new ProgressDialog(signupPage.this);
        dialog.setTitle("Creating user record.. ");
        dialog.setMessage("User registration is in progress..");
        dialog.show();
        StorageReference storageReference = mStorageRef.child(imageName);
        storageReference.putFile(image).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                // Url

                StorageReference newReference = FirebaseStorage.getInstance().getReference(imageName);
                newReference.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
                    @Override
                    public void onSuccess(Uri uri) {

                        dowloadURL = uri.toString();

                        if (dowloadURL != null) {
                            mAuth.createUserWithEmailAndPassword(emailText.getText().toString(), passwordText.getText().toString())
                                    .addOnCompleteListener(signupPage.this, new OnCompleteListener<AuthResult>() {
                                        @Override
                                        public void onComplete(@NonNull Task<AuthResult> task) {
                                            if (task.isSuccessful()) /* Kullanıcı girişi başarılı ise bu çalışacak */ {
                                                Toast.makeText(signupPage.this, "User Created", Toast.LENGTH_SHORT).show();
                                                String userName = user_name.getText().toString();
                                                String userSurname = user_surname.getText().toString();
                                                String username = user_username.getText().toString();
                                                String user_email = emailText.getText().toString();
                                                String key = myRef.push().getKey();
                                                String password = user_password.getText().toString();
                                                String imageURL = dowloadURL;

                                                Users user = new Users(key, userName, username, userSurname, user_email, password,imageURL, admin);
                                                myRef.push().setValue(user);
                                                Intent homePage = new Intent(signupPage.this, ProfilePage.class);
                                                startActivity(homePage);
                                                finish();
                                                dialog.dismiss();

                                            } else /* Kullanıcı girişi başarısız ise bu çalışacak */ {
                                               /*Intent signBack = new Intent(signupPage.this, signupPage.class);
                                                startActivity(signBack);
                                                finish(); */
                                                dialog.dismiss();
                                            }



                                        }
                                    }).addOnFailureListener(signupPage.this, new OnFailureListener() {
                                @Override
                                public void onFailure(@NonNull Exception e) {
                                    Toast.makeText(signupPage.this, e.getLocalizedMessage(), Toast.LENGTH_SHORT).show();
                                }
                            });
                        }


                    }
                });


            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Toast.makeText(signupPage.this, e.getLocalizedMessage(), Toast.LENGTH_SHORT).show();
            }
        });


    }

下载网址来自一个单独的图像选择方法,顺便说一句。我的用户创建的代码都是这样的。

拉夫商城:

你的问题是,而不是存储在你的火力数据库恒定和有效的关键,每次你改变你的个人资料,你创建一个新的节点。为何如此?好了,你这样做:

String key = myRef.push().getKey();

其中每一次创建一个新的节点(这就是为什么推的是那里),你会得到该节点的密钥。这也是为什么你创建一个新用户,而不是更新您的帐户资料。做正确的方法如下。

当创建用户获得与此键:

String key = FirebaseAuth.getInstance().getCurrentUser().getUid();

在创建这个按键用户对象,做到以下几点:

myRef.child(key).setValue(user);

当你想更新你的用户,你可以访问密钥创建同样的方式。让所有的更新信息和密钥后,然后执行:

myRef.child(key).setValue(data); //For updating

要么

myRef.child(key).updateChildren(data); //For updating

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

插入整数,如果不存在,增量如果火力地堡实时数据库的Android已经存在

如何正确地构建Java代码来命名的项下的值保存到火力地堡实时数据库

Android的火力地堡如何处理实时服务器本地数据库连接

无法在Android中更新Firebase实时数据库

过滤Android实时数据库

Android:Firebase实时数据库

使用实时数据库更新 Android 应用程序的内部数据库

获得从火力地堡实时数据库中的信息与火力地堡管理员SDK

Firebase实时数据库Android Java

Android 应用程序:从实时数据库到 Firestore - 将数据更新到数据库

环火力地堡中的数据库上的Android试图改变值时

在Android中从Firebase实时数据库检索数据

Android Firebase 实时数据库获取数据太慢

Firebase 实时数据库读写数据协议与android

Android:应用销毁后更新Firebase实时数据库

Firebase Android应用程序-不更新实时数据库

android-实时数据库读写

Android Firebase 实时数据库博客应用

使用Java加入Firebase实时数据库?

如何阅读从不同的密钥相同的节点值火力地堡实时数据库?

如何构建写用户信息到火力地堡实时数据库?

从Firebase实时数据库,Android Studio,Java获取数据

在 Android Studio 上使用 Java 检查实时数据库上的重复数据

JAVA Android studio 不向 Firebase 实时数据库发送数据

首次安装android应用时,如何从Firebase实时数据库获取数据库

将Android Room数据库与Firebase实时数据库链接

Firebase 实时数据库 - 如何使用 java sdk 管理数据库规则

Firebase 实时数据库 - 关于事件 - Javascript Deltasnapshot 和 Android Java DataSnapshot 之间的区别

使用 android studio java Recycler 视图从 Firebase 实时数据库中删除节点