簡體   English   中英

注冊用戶 - 添加字段

[英]Register User - Added fields

所以我正在嘗試為我的 android 應用程序注冊一個用戶,目前它使用 Firebase 身份驗證來使用 email 和密碼進行注冊。 但我也在嘗試添加一個姓名和電話字段來注冊。

Registration.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            // register name/phone/radiogroup


            final String name = nameField.getText().toString();
            final String phone = phoneField.getText().toString();
            final String email = Email.getText().toString();
            final String password = Password.getText().toString();

            if (TextUtils.isEmpty(name)) {
                Toast.makeText(TradesmanLoginActivity.this,
                        "Please enter your Name...", Toast.LENGTH_SHORT).show();
            }

            if (TextUtils.isEmpty(phone)) {
                Toast.makeText(TradesmanLoginActivity.this,
                        "Please enter your Phone Number...", Toast.LENGTH_SHORT).show();
            }

            if (TextUtils.isEmpty(email)) {
                Toast.makeText(TradesmanLoginActivity.this,
                        "Please enter your Email Address...", Toast.LENGTH_SHORT).show();
            }

            if (TextUtils.isEmpty(password)) {
                Toast.makeText(TradesmanLoginActivity.this,
                        "Please enter a Password...", Toast.LENGTH_SHORT).show();
            } else {
                loadingBar.setTitle("Tradesman Registration");
                loadingBar.setMessage("Please wait while we check your credentials...");
                loadingBar.show();

                Auth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(TradesmanLoginActivity.this, new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                        if (!task.isSuccessful()) {
                            Toast.makeText(TradesmanLoginActivity.this, "sign up error", Toast.LENGTH_SHORT).show();
                            loadingBar.dismiss();
                        } else {
                            Toast.makeText(TradesmanLoginActivity.this, "Tradesman Registration Successful!", Toast.LENGTH_SHORT).show();
                            loadingBar.dismiss();

                            String name = nameField.getText().toString();
                            String phone= phoneField.getText().toString();

                            HashMap<String,String> user=new HashMap<>();
                            user.put("Name",name);
                            user.put("Phone",phone);


                            String user_id = Auth.getCurrentUser().getUid();
                            DatabaseReference current_user_db = FirebaseDatabase.getInstance().getReference().child("Users").child("Tradesman").child(user_id).child("Name");
                            current_user_db.setValue(email);
                        }
                    }
                });
            }
        }
    });

我已經創建了字段等,我只是在努力將姓名和電話放入 firebase 數據庫中。

目前它注冊一個用戶並將名稱設置為用戶 email。 我想將姓名和電話存儲為用戶 ID 的子項(他們在注冊時輸入),而不僅僅是 email

您在setValue處輸入了錯誤的值。 換成這個。

 DatabaseReference current_user_db = FirebaseDatabase.getInstance().getReference().child("Users").child("Tradesman").child(user_id);
 current_user_db.setValue(user);

如果您想在/Users/Tradesman/$uid下使用用戶的姓名和電話號碼創建一個節點,則如下所示:

Auth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(TradesmanLoginActivity.this, new OnCompleteListener<AuthResult>() {
    @Override
    public void onComplete(@NonNull Task<AuthResult> task) {
        if (!task.isSuccessful()) {
            Toast.makeText(TradesmanLoginActivity.this, "sign up error", Toast.LENGTH_SHORT).show();
            loadingBar.dismiss();
        } else {
            Toast.makeText(TradesmanLoginActivity.this, "Tradesman Registration Successful!", Toast.LENGTH_SHORT).show();
            loadingBar.dismiss();

            String name = nameField.getText().toString();
            String phone= phoneField.getText().toString();

            HashMap<String,String> user=new HashMap<>();
            user.put("Name",name);
            user.put("Phone",phone);

            String user_id = Auth.getCurrentUser().getUid();
            DatabaseReference current_user_db = FirebaseDatabase.getInstance().getReference().child("Users/Tradesman").child(user_id);
            current_user_db.setValue(user);
        }
    }
});

最大的變化是你只寫email ,上面的更新寫了整個 map 的名字和電話號碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM