认证方式
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是国家/地区代码,所以我希望获取国家/地区代码,而不仅仅是删除国家/地区代码
http://ibb.co/ngnyLS
最佳答案
通过检查您的结构,您可以看到您的用户仅在“ 1212121212”中注册,并且聊天和消息中也存在相同的条目,但在“ +91 1212121212”中却不是这样
创建聊天孩子时,您传递的是mNumber
,即“ +91 1212121212”
而在获取时,您请求的mAuth.getCurrentUser().getPhoneNumber();
将是“ 1212121212”
在添加和检索数据时,请保持一致性,
从您的数据库中可以清楚地看到,没有注册“ +91”的用户请在此进行更改,或者更改您的聊天子代创建密钥。
关于java - 即使数据相同,不同类型的数据也会存储在Firebase中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49549101/