身份验证
String number = mPhoneNumberField.getText().toString();
Intent i = new Intent(MainActivity.this, SetUpProfile.class);
i.putExtra("Phone_Number", number);
startActivity(i);
finish();
传递
final String mNumber = getIntent().getStringExtra("Phone_Number");
存储
mdatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(mNumber);
addData.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view)
{
String name = input_name.getText().toString();
String email = input_email.getText().toString();
String status = input_status.getText().toString();
String quote = input_quote.getText().toString();
HashMap<String, String> userMap = new HashMap<>();
userMap.put("Unique",Uid);
userMap.put("Name",name);
userMap.put("Status", "Hey There");
userMap.put("Image", "Default");
userMap.put("Thumb_image", "Default");
userMap.put("Phone_Number", mNumber);
获取
Intent intent = new Intent(getActivity(), Chat.class);
String name = (String)parent.getItemAtPosition(position);
String rId = (String)parent.getItemAtPosition(position);
//Log.d("TAAAAG", rId);
intent.putExtra("Recievers_Id", rId);
intent.putExtra("Recievers_Name", name);
下一个活动
MessageSenderId = mAuth.getCurrentUser().getPhoneNumber();
MessageRecieverId = getIntent().getStringExtra("Recievers_Id");
rootRef.child("Chats").child(MessageSenderId).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (!dataSnapshot.hasChild(MessageRecieverId)) {
Map chatAddMap = new HashMap();
chatAddMap.put("Seen", false);
chatAddMap.put("Timestamp", ServerValue.TIMESTAMP);
Map chatUserMap = new HashMap();
chatUserMap.put("Chat/" + MessageSenderId + "/" + MessageRecieverId, chatAddMap);
chatUserMap.put("Chat/" + MessageRecieverId + "/" + MessageSenderId, chatAddMap);
rootRef.updateChildren(chatUserMap, new DatabaseReference.CompletionListener() {
@Override
public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
if (databaseError != null) {
Log.d("Chat_Log", databaseError.getMessage().toString());
}
messageArea.setText("");
}
});
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
注册时,+ 91正在添加到数据库...但是当我尝试获取它时没有+91的提取...因此它完全弄乱了数据。如何获取包括+91的数字或在验证时删除91 ...如果你需要查看我的代码请询问。
91是国家/地区代码,因此我希望获取国家/地区代码,而不是仅删除国家/地区代码
答案 0 :(得分:0)
通过检查您的结构,您可以看到用户仅通过“1212121212”进行注册, 聊天和消息中的相同条目 ,但不是“+ 91 1212121212”的情况
在创建聊天孩子时,您正在传递mNumber
“+ 91 1212121212”
在提取时,您要求mAuth.getCurrentUser().getPhoneNumber();
“1212121212”
添加和检索数据时请保持一致性, 从您的数据库中可以清楚地看到用户在没有“+91”的情况下注册,请在那里进行更改,或者更改聊天子项创建密钥。