认证方式

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/

10-11 21:59