如何将用户提供的数据传递给下一个活动

时间:2017-12-25 15:30:47

标签: java android firebase android-intent firebase-realtime-database

    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
                    }
                }
            });
        }
    });

这是第二个活动中的代码......创建一个名为Users的子代。并且应该创建另一个电话号码的孩子。该数字应该是第一个活动中提供的用户。但不是数字显示为空...其余的数据正在被正确添加。我无法获取用户在prev类中提供的电话号码。请帮忙!提前谢谢

1 个答案:

答案 0 :(得分:2)

我假设第一项活动是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());