Как передать данные, предоставленные пользователем, в следующую активность

    final DatabaseReference ref = FirebaseDatabase.getInstance()
            .getReferenceFromUrl("https://messageplus-cd647.firebaseio.com/");
    addData.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View view)
        {
            MyUser user;
            LayoutInflater inflater = getLayoutInflater();
            View myView = inflater.inflate(R.layout.activity_main, null);
            EditText userNumber = (EditText) findViewById(R.id.field_phone_number);
            user = new MyUser(input_name.getText().toString(), input_email.getText().toString(), input_status.getText().toString(), input_quote.getText().toString());
            ref.child("Users").child(String.valueOf(userNumber)).setValue(user).addOnCompleteListener(new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    if (task.isSuccessful())
                    {
                        //USER SAVED
                    }
                }
            });
        }
    });

Это код во втором действии... Создается дочерний элемент с именем Пользователи. и должен быть создан еще один дочерний номер телефона. Номер должен принадлежать пользователю, указанному в первом действии. но вместо числа он показывает ноль. Остальные данные добавляются правильно. у меня возникли проблемы с получением номера телефона, предоставленного пользователем в предыдущем классе. пожалуйста помоги! заранее спасибо


person Akash R    schedule 25.12.2017    source источник
comment
Вы хотите передавать данные из одного действия в другое? или вы не можете получить номер из базы данных?   -  person Peter Haddad    schedule 25.12.2017
comment
Вы можете напрямую вставлять пары ключ-значение для примитивных типов в намерение или сделать свой класс разделяемым и передавать его внутри намерения.   -  person Pomagranite    schedule 25.12.2017
comment
я хочу передать данные из первого действия во второе.   -  person Akash R    schedule 25.12.2017
comment
для доступа ко второму действию пользователь должен будет указать свой номер телефона и пройти аутентификацию. код работает нормально. но я не могу получить указанный номер телефона   -  person Akash R    schedule 25.12.2017


Ответы (1)


Я предполагаю, что первое действие предназначено для sign up, а второе — для login, затем, чтобы получить номер телефона от регистрации до входа в систему, сделайте следующее:

 //in SignupActivity

String number=edittext.getText().toString();
Intent i = new Intent(SignupActivity.this, LoginActivity.class);
i.putExtra("your_number",number);
startActivity(i)
finish();

Строка number содержит номер телефона, который передается другому действию с помощью putExtra


//under onCreate() in LoginActivity

 Intent i = getIntent();
 String s = i.getStringExtra("your_number");

Строка s содержит номер телефона, который передается LoginActivity

Затем вы можете использовать этот номер телефона для аутентификации пользователя.

Также нет необходимости использовать getReferencefromUrl, можно просто сделать это:

final DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("AllUser").push();
 ref.child("phonenumber").setValue(s);

Либо используйте push() (как указано выше), либо сделайте следующее:

FirebaseUser user=FirebaseAuth.getInstance().getCurrentUser();
final DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("AllUser").child(user.getUid());
person Peter Haddad    schedule 25.12.2017
comment
Омг... чувак, ты сейчас для меня как Бог. уже 2 дня голову ломаю... Tysfm - person Akash R; 25.12.2017
comment
Добавьте его под номером телефона ref.child("phonenumber").child("data").setValue(data)... Вот так для всех данных - person Peter Haddad; 25.12.2017
comment
что не работает?? сделать это: ref.child("phonenumber").child("name").setValue(peter); ref.child("phonenumber").child("familyname").setValue(haddad);.. нет другого решения для этого - person Peter Haddad; 25.12.2017
comment
Tysm чувак ... и извини за все проблемы, через которые ты прошел - person Akash R; 25.12.2017
comment
это нормально без проблем!! счастливого кодирования! - person Peter Haddad; 25.12.2017