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类中提供的电话号码。请帮忙!提前谢谢
答案 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());