Estoy creando una aplicación de Android para almacenar el nombre y el número de teléfono móvil de cada usuario, ahora, cuando el segundo usuario actualiza su información, está eliminando la información del primer usuario almacenada en la base de datos, tengo 2 fragmentos, uno es el fragmento de inicio de sesión (usando la autenticación de base de fuego) y el segundo fragmento para obtener el nombre y el número de móvil. ¿Cómo puedo agregar información para cada usuario por separado?

enter image description here

Este es mi código de inicio de sesión

 btn_signIn = (Button) view.findViewById(R.id.sign_in_btn);
    btn_signIn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String emailID = username.getText().toString();
            String paswd = password.getText().toString();
            if (emailID.isEmpty()) {
                username.setError("Provide your Email first!");
                username.requestFocus();
            } else if (paswd.isEmpty()) {
                password.setError("Set your password");
                password.requestFocus();
            }
            else if (emailID.isEmpty() && paswd.isEmpty()) {
                Toast.makeText(getActivity(), "Fields Empty!", Toast.LENGTH_SHORT).show();
            }
            else if (!(emailID.isEmpty() && paswd.isEmpty())) {


                mAuth.signInWithEmailAndPassword(emailID, paswd)
                        .addOnCompleteListener(getActivity(), new OnCompleteListener<AuthResult>() {
                            @Override
                            public void onComplete(@NonNull Task<AuthResult> task) {
                                // If sign in fails, display a message to the user. If sign in succeeds
                                // the auth state listener will be notified and logic to handle the
                                // signed in user can be handled in the listener.

                                if (!task.isSuccessful()) {
                                    // there was an error
                                    if (password.length() < 6) {
                                       // inputPassword.setError(getString(R.string.minimum_password));
                                    } else {
                                      //  Toast.makeText(LoginActivity.this, getString(R.string.auth_failed), Toast.LENGTH_LONG).show();
                                    }
                                } else {
                                   Intent intent = new Intent(getActivity(), HomePageActivity.class);
                                    startActivity(intent);
                                   // finish();
                                }
                            }
                        });

.

            }







        }
    });

Este es mi código para almacenar el número de teléfono móvil en firebase que está en otro fragmento

 new AlertDialog.Builder(getActivity()).setTitle("Please Input Contact Information").setIcon(
                    android.R.drawable.ic_dialog_dialer).setView(
                    layout).setPositiveButton("OK", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    Dialog dialog = (Dialog) dialogInterface;
                    EditText inputMobile = (EditText) dialog.findViewById(R.id.dialog_et_mobile);
                    if (inputMobile.getText().toString().isEmpty()){
                        return;
                    }
                    try{
                        long number = Long.valueOf(inputMobile.getText().toString());
                        SPManipulation.getInstance(getActivity()).setMobile(inputMobile.getText().toString());
                        mTextMobile.setText(inputMobile.getText().toString());


                        String mobile = inputMobile.getText().toString();
                        DatabaseReference mynum = database.getReference("number");




                    }catch (Exception e){
                        Toast.makeText(getActivity(), "Please Input Correct Phone Number!", Toast.LENGTH_SHORT).show();
                    }
                }
            }).setNegativeButton("Cancel", null).show();
        }
    });

¿Alguien puede ayudar a almacenar información por separado para cada usuario? Busqué mucho pero nada me ayudó. puede ser porque soy muy novato ... por favor ayúdame

0
Jaison Joseph 16 oct. 2018 a las 14:12

2 respuestas

La mejor respuesta

Pruebe el siguiente código agregue productos usando el siguiente código

DatabaseReference rootRef;
rootRef = FirebaseDatabase.getInstance().getReference();

 CommonLocationClass dataLocation = new CommonLocationClass();
            dataLocation.setLat(latLng.latitude);
            dataLocation.setLongi(latLng.longitude);
            dataLocation.setPhno("");
            dataLocation.setStatus(true);
            if (sessionManager.phNO() != null) {
                rootRef.child(sessionManager.phNO()).setValue(dataLocation);
            }

Commonlocationclass es una clase modelo que tiene getters y setters .child (sessionManager.phNo ()) es el nombre del niño con el que puede identificar más los elementos

Y con este código puedes actualizar los campos

Map<String, Object> map = new HashMap<>();
            map.put("lat", latLng.latitude);
            map.put("longi", latLng.longitude);
            map.put("phno", sessionManager.phNO());
            map.put("status", true);
            if (sessionManager.phNO() != null)
                rootRef.child(sessionManager.phNO()).updateChildren(map);

Pruebe este código espero que le ayude a codificar feliz !!!!!!!

1
Neville Narcis 16 oct. 2018 a las 12:33

Prueba esto,

    new AlertDialog.Builder(getActivity()).setTitle("Please Input Contact Information").setIcon(
                    android.R.drawable.ic_dialog_dialer).setView(
                    layout).setPositiveButton("OK", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    Dialog dialog = (Dialog) dialogInterface;
                    EditText inputMobile = (EditText) dialog.findViewById(R.id.dialog_et_mobile);
                    if (inputMobile.getText().toString().isEmpty()){
                        return;
                    }
                    try{
                        long number = Long.valueOf(inputMobile.getText().toString());
                        SPManipulation.getInstance(getActivity()).setMobile(inputMobile.getText().toString());
                        mTextMobile.setText(inputMobile.getText().toString());

            FirebaseAuth   mAuth = FirebaseAuth.getInstance();
            String userID = mAuth.getCurrentUser().getUid();

                        String mobile = inputMobile.getText().toString();
                        DatabaseReference mynum = database.getReference().child(userID).child("number");




                    }catch (Exception e){
                        Toast.makeText(getActivity(), "Please Input Correct Phone Number!", Toast.LENGTH_SHORT).show();
                    }
                }
            }).setNegativeButton("Cancel", null).show();
        }
    });

Espero que te ayude por completo

1
chetan mahajan 16 oct. 2018 a las 12:19