Вызвано: com.google.firebase.database.DatabaseException: Invalid - PullRequest
1 голос
/ 30 сентября 2019

Причина: com.google.firebase.database.DatabaseException: Неверный путь к базе данных Firebase: https://firebasestorage.googleapis.com/v0/b/finga-40dbf.appspot.com/o/Chats%2F1569093478186.null?alt=media&token=e8112923-0b4e-4e0c-a972-d9cce8fd50d5. Пути к базе данных Firebase не должны содержать '.', '#', '$', '[

Привет, я новичок в студии android и у меня проблема. когда я нажимаю на изображение, которое я хочу, чтобы оно появилось в «LargeImgMsgActivity», и я получаю сообщение об ошибке выше, пожалуйста, помогите мне

ChatDB_Image_here FirebaseDB

MessageAdapter

package com.developer.fireone.finga.Adapter;

import android.content.Context;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView;

import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.DataSource;
import com.bumptech.glide.load.engine.GlideException;
import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.Target;
import com.developer.fireone.finga.LargeImgMsgActivity;
import com.developer.fireone.finga.Model.Chat;
import com.developer.fireone.finga.R;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;

import java.util.List;

import static java.security.AccessController.getContext;

/**
 * Created by user on 01/02/2019.
 */

public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.ViewHolder>{

    public final static int MSG_TYPE_LEFT=0;
    public final static int MSG_TYPE_RIGHT=1;

    private Context mContext;
    private List<Chat> mChat;
    private  String imageurl;

    FirebaseUser fuser;

    public MessageAdapter(Context mContext, List<Chat> mChat, String imageurl) {
        this.mContext = mContext;
        this.mChat = mChat;
        this.imageurl = imageurl;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {

        if(viewType==MSG_TYPE_RIGHT) {
            View view = LayoutInflater.from(mContext).inflate(R.layout.chat_item_right, viewGroup, false);
            return new MessageAdapter.ViewHolder(view);
        }
        else {
            View view = LayoutInflater.from(mContext).inflate(R.layout.chat_item_left, viewGroup, false);
            return new MessageAdapter.ViewHolder(view);
        }

    }

    @Override
    public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {


        Chat chat = mChat.get(position);

        holder.show_message.setVisibility(View.GONE);
        holder.show_img.setVisibility(View.GONE);

        if(chat.getType().equals("message")) {
            holder.show_message.setText(chat.getMessage());
            holder.show_message.setTextIsSelectable(true);
            holder.show_message.setVisibility(View.VISIBLE);

        }
    else {
        Glide.with(mContext.getApplicationContext()).load(chat.getMessage())
                .placeholder(R.drawable.ic_img_font).into(holder.show_img);
            holder.show_img.setVisibility(View.VISIBLE);

           //click here to show image to LargeImgMsgActivity...
            holder.show_img.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    Intent intent = new Intent(mContext, LargeImgMsgActivity.class);
                    intent.putExtra("image", chat.getMessage());
                    mContext.startActivity(intent);

                }
            });

        }

        holder.txt_date.setText(chat.getDate());
        holder.txt_time.setText(chat.getTime());

        // delete msg
        holder.msglayout.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                return false;
            }
        });

        if(imageurl.equals("default")){

            holder.profile_image.setImageResource(R.drawable.ic_person);

        }else{
            Glide.with(mContext).load(imageurl).into(holder.profile_image);
        }

        if(position == mChat.size()-1){
            if(chat.isIsseen()){
                holder.txt_seen.setText(R.string.strSeen);
            }else{
                holder.txt_seen.setText(R.string.strDelivred);
            }
        }else{
            holder.txt_seen.setVisibility(View.GONE);
        }

    }

    @Override
    public int getItemCount() {
        return mChat.size();
    }

    public class ViewHolder extends  RecyclerView.ViewHolder{

        public TextView show_message;
        public ImageView profile_image;
        public ImageView show_img;
        public TextView txt_date;
        public TextView txt_time;
        public TextView txt_seen;
        public RelativeLayout msglayout;

        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            show_message=itemView.findViewById(R.id.show_message);
            show_img=itemView.findViewById(R.id.show_img);
            profile_image=itemView.findViewById(R.id.profile_image);
            txt_date=itemView.findViewById(R.id.txt_date);
            txt_time=itemView.findViewById(R.id.txt_time);
            txt_seen=itemView.findViewById(R.id.txt_seen);
            msglayout=itemView.findViewById(R.id.msglayout);

        }
    }


    @Override
    public int getItemViewType(int position) {
        fuser= FirebaseAuth.getInstance().getCurrentUser();
        if(mChat.get(position).getSender().equals(fuser.getUid())){
            return MSG_TYPE_RIGHT;
        }else {
            return MSG_TYPE_LEFT;
        }
    }
}

LargeImgMsgActivity

package com.developer.fireone.finga;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.widget.ImageView;

import com.bumptech.glide.Glide;
import com.developer.fireone.finga.Model.Chat;
import com.developer.fireone.finga.Model.User;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

import static java.security.AccessController.getContext;

public class LargeImgMsgActivity extends AppCompatActivity {

    ImageView image_msg;
    Intent intent ;
    String id;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_large_img_msg);

        image_msg=findViewById(R.id.show_img_msg);
        intent = getIntent();
        id = intent.getStringExtra("image");


        DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Chats").child("Chats").child(id);
        reference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                if(getContext() == null){
                    return;
                }

                final Chat chat = dataSnapshot.getValue(Chat.class);
                Glide.with(getApplicationContext()).load(chat.getMessage()).placeholder(R.drawable.ic_person).into(image_msg);

            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });


    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...