Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在私有void sendMessage部分中的用户标识。请帮助.child(userid);和chatRef.child(”id“).setValue(userid);_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Android 在私有void sendMessage部分中的用户标识。请帮助.child(userid);和chatRef.child(”id“).setValue(userid);

Android 在私有void sendMessage部分中的用户标识。请帮助.child(userid);和chatRef.child(”id“).setValue(userid);,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我在sendMessage方法中的userid中遇到问题 .child(userid)和chatRef.child(“id”).setValue(userid) 我还在我的RegisterActivity页面中使用了userid,但我认为这与此无关 错误:找不到符号变量userid 公共类MessageActivity扩展了AppCompatActivity{ 圆形图像查看纵断面图; 文本视图用户名; FirebaseUser定影器; 数据库参考; 图像按钮btn_发送; 编辑文本发送; Mes

我在
sendMessage
方法中的
userid
中遇到问题

.child(userid)
chatRef.child(“id”).setValue(userid)

我还在我的
RegisterActivity
页面中使用了
userid
,但我认为这与此无关

错误:找不到符号变量userid

公共类MessageActivity扩展了AppCompatActivity{
圆形图像查看纵断面图;
文本视图用户名;
FirebaseUser定影器;
数据库参考;
图像按钮btn_发送;
编辑文本发送;
MessageAdapter消息适配器;
列出mchat;
回收视图回收视图;
意图内容;
ValueEventListener-seenListener;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_消息);
Toolbar Toolbar=findviewbyd(R.id.Toolbar);
设置支持操作栏(工具栏);
getSupportActionBar().setTitle(“”);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
toolbar.setNavigationOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
startActivity(新意图(MessageActivity.this,startActivity.class).setFlags(意图.FLAG\u活动\u清除\u顶部));
}
});
recyclerView=findViewById(R.id.recycler\u视图);
recyclerView.setHasFixedSize(true);
LinearLayoutManager LinearLayoutManager=新的LinearLayoutManager(getApplicationContext());
linearLayoutManager.setStackFromEnd(true);
recyclerView.setLayoutManager(linearLayoutManager);
profile_image=findviewbyd(R.id.profile_image);
username=findviewbyd(R.id.username);
btn_send=findviewbyd(R.id.btn_send);
text\u send=findviewbyd(R.id.text\u send);
ıentent=getIntent();
最终字符串userid=content.getStringExtra(“userid”);
fuser=FirebaseAuth.getInstance().getCurrentUser();
btn_send.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
字符串msg=text_send.getText().toString();
如果(!msg.equals(“”){
sendMessage(fuser.getUid(),userid,msg);
}否则{
Toast.makeText(MessageActivity.this,“您不能发送空消息”,Toast.LENGTH_SHORT.show();
}
text_send.setText(“”);
}
});
reference=FirebaseDatabase.getInstance().getReference(“用户”).child(用户ID);
addValueEventListener(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
User=dataSnapshot.getValue(User.class);
username.setText(user.getUsername());
if(user.getImageURL().equals(“默认”)){
profile_image.setImageResource(R.mipmap.ic_启动器);
}否则{
Glide.with(getApplicationContext()).load(user.getImageURL())到(profile\u image)中;
}
readMessages(fuser.getUid(),userid,user.getImageURL());
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
参见消息(用户ID);
}
私有void seenMessage(最终字符串userid){
reference=FirebaseDatabase.getInstance().getReference(“聊天”);
seenListener=reference.addValueEventListener(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
对于(DataSnapshot快照:DataSnapshot.getChildren()){
Chat Chat=snapshot.getValue(Chat.class);
if(chat.getReceiver().equals(fuser.getUid())&&chat.getSender().equals(userid)){
HashMap HashMap=新的HashMap();
hashMap.put(“isseen”,true);
snapshot.getRef().updateChildren(hashMap);
}
}
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
}
私有void sendMessage(字符串发送方、字符串接收方、字符串消息){
DatabaseReference=FirebaseDatabase.getInstance().getReference();
HashMap HashMap=新的HashMap();
hashMap.put(“发送方”,发送方);
hashMap.put(“接收方”,接收方);
hashMap.put(“message”,message);
hashMap.put(“isseen”,false);
reference.child(“Chats”).push().setValue(hashMap);
final DatabaseReference chatRef=FirebaseDatabase.getInstance().getReference(“Chatlist”)
.child(fuser.getUid())
.child(userid);
chatRef.addListenerForSingleValueEvent(新的ValueEventListener()){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
如果(!dataSnapshot.exists()){
chatRef.child(“id”).setValue(userid);
}
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
}
私有void readMessages(最终字符串myid、最终字符串userid、最终字符串imageURL){
mchat=newarraylist();
reference=FirebaseDatabase.getInstance().getReference(“聊天”);
addValueEventListener(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
mchat.clear();
对于(DataSnapshot快照:DataSnapshot.getChildren()){
聊天=
public class MessageActivity extends AppCompatActivity {

    CircleImageView profile_image;
    TextView username;

    FirebaseUser fuser;
    DatabaseReference reference;

    ImageButton btn_send;
    EditText text_send;

    MessageAdapter messageAdapter;
    List<Chat> mchat;

    RecyclerView recyclerView;
    Intent ıntent;

    ValueEventListener seenListener;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_message);

        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setTitle("");
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(MessageActivity.this,StartActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
            }
        });

        recyclerView = findViewById(R.id.recycler_view);
        recyclerView.setHasFixedSize(true);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getApplicationContext());
        linearLayoutManager.setStackFromEnd(true);
        recyclerView.setLayoutManager(linearLayoutManager);

        profile_image = findViewById(R.id.profile_image);
        username = findViewById(R.id.username);
        btn_send = findViewById(R.id.btn_send);
        text_send = findViewById(R.id.text_send);

        ıntent = getIntent();
        final String userid = ıntent.getStringExtra("userid");
        fuser = FirebaseAuth.getInstance().getCurrentUser();

        btn_send.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String msg = text_send.getText().toString();
                if(!msg.equals("")){
                    sendMessage(fuser.getUid(),userid,msg);
                }else{
                    Toast.makeText(MessageActivity.this,"You cannot send empty message", Toast.LENGTH_SHORT).show();
                }
                text_send.setText("");
            }
        });


        reference = FirebaseDatabase.getInstance().getReference("Users").child(userid);

        reference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                User user = dataSnapshot.getValue(User.class);
                username.setText(user.getUsername());
                if(user.getImageURL().equals("default")){
                    profile_image.setImageResource(R.mipmap.ic_launcher);
                }else{
                    Glide.with(getApplicationContext()).load(user.getImageURL()).into(profile_image);
                }

                readMessages(fuser.getUid(),userid,user.getImageURL());
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });

        seenMessage(userid);
    }

    private void seenMessage(final String userid){
        reference = FirebaseDatabase.getInstance().getReference("Chats");
        seenListener = reference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                for(DataSnapshot snapshot : dataSnapshot.getChildren()){
                    Chat chat = snapshot.getValue(Chat.class);
                    if(chat.getReceiver().equals(fuser.getUid())&& chat.getSender().equals(userid)){
                        HashMap<String,Object> hashMap = new HashMap<>();
                        hashMap.put("isseen",true);
                        snapshot.getRef().updateChildren(hashMap);
                    }
                }
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });
    }

    private void sendMessage(String sender,String receiver, String message){

        DatabaseReference reference = FirebaseDatabase.getInstance().getReference();

        HashMap<String,Object> hashMap = new HashMap<>();
        hashMap.put("sender",sender);
        hashMap.put("receiver",receiver);
        hashMap.put("message",message);
        hashMap.put("isseen",false);

        reference.child("Chats").push().setValue(hashMap);

        final DatabaseReference chatRef = FirebaseDatabase.getInstance().getReference("Chatlist")
                .child(fuser.getUid())
                .child(userid);

        chatRef.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                if(!dataSnapshot.exists()){
                    chatRef.child("id").setValue(userid);
                }
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });

    }

    private void readMessages(final String myid, final String userid, final String imageURL){
        mchat = new ArrayList<>();
        reference = FirebaseDatabase.getInstance().getReference("Chats");
        reference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                mchat.clear();
                for (DataSnapshot snapshot : dataSnapshot.getChildren()){
                    Chat chat = snapshot.getValue(Chat.class);
                    if(chat.getReceiver().equals(myid) && chat.getSender().equals(userid) ||
                            chat.getReceiver().equals(userid) && chat.getSender().equals(myid)){
                        mchat.add(chat);
                    }
                    messageAdapter = new MessageAdapter(MessageActivity.this,mchat,imageURL);
                    recyclerView.setAdapter(messageAdapter);
                }
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });
    }

    private void status(String status){
        reference = FirebaseDatabase.getInstance().getReference("Users").child(fuser.getUid());

        HashMap<String,Object> hashMap = new HashMap<>();
        hashMap.put("status",status);

        reference.updateChildren(hashMap);
    }

    @Override
    protected void onResume() {
        super.onResume();
        status("online");
    }

    @Override
    protected void onPause() {
        super.onPause();
        reference.removeEventListener(seenListener);
        status("offline");
    }
}
final String userid = intent.getStringExtra("userid");
RecyclerView recyclerView;
Intent intent;

ValueEventListener seenListener;
String userid = "";
userid = intent.getStringExtra("userid");
if(userid!=null) {
//do something
}
else {
Log.d("ClassName","userid is null");
}