Ошибка: не найден подходящий метод 'setQuery (com.google.firebase.DatabaseReference - PullRequest
0 голосов
/ 05 апреля 2020

Я создаю FindFriendActivity в приложении чата, я использую пользовательский интерфейс Firebase, но я получаю сообщение об ошибке в этой конкретной строке: .setQuery(userRef, Contacts.class)

Не удается разрешить метод 'setQuery (com .google.firebase.DatabaseReference, java .lang.class) '

Вот ошибки, которые я получаю при сборке:

error: no suitable method found for setQuery(DatabaseReference,Class<com.example.chatApp.Model.Contacts>)
                .setQuery(userRef, Contacts.class)
                ^
    method Builder.setQuery(Query,SnapshotParser<android.provider.ContactsContract.Contacts>) is not applicable
      (argument mismatch; Class<com.example.chatApp.Model.Contacts> cannot be converted to SnapshotParser<android.provider.ContactsContract.Contacts>)
    method Builder.setQuery(Query,Class<android.provider.ContactsContract.Contacts>) is not applicable
      (argument mismatch; Class<com.example.chatApp.Model.Contacts> cannot be converted to Class<android.provider.Contacts

error: cannot find symbol
        FirebaseRecyclerAdapter<Contacts, FindFriendViewHolder> adapter = new
                                                                          ^
  symbol: constructor (FirebaseRecyclerOptions<Contacts>)



error: incompatible types: FirebaseRecyclerOptions<android.provider.ContactsContract.Contacts> cannot be converted to FirebaseRecyclerOptions<com.example.chatApp.Model.Contacts>
                FirebaseRecyclerAdapter<Contacts, FindFriendViewHolder>(options) {
                                                                        ^

Вот мой код:

FindFriendActivity. java

public class FindFriendActivity extends AppCompatActivity {

    private Toolbar mToolbar;
    private RecyclerView findFriendsRecyclerList;
    private DatabaseReference userRef;

    private FirebaseAuth mAuth;
    private String currentUserId;

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

        userRef = FirebaseDatabase.getInstance()
                .getReference()
                .child("Users");

        findFriendsRecyclerList = (RecyclerView)findViewById(R.id.find_friends_recycler_list);
        findFriendsRecyclerList.setLayoutManager(new LinearLayoutManager(this));

        mToolbar = (Toolbar)findViewById(R.id.toolbar);
        setSupportActionBar(mToolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
        getSupportActionBar().setTitle(R.string.find_friend);

    }

    @Override
    protected void onStart() {
        super.onStart();

        FirebaseRecyclerOptions<ContactsContract.Contacts> options = new
                FirebaseRecyclerOptions.Builder<ContactsContract.Contacts>()
                .setQuery(userRef, Contacts.class)
                .build();

        FirebaseRecyclerAdapter<Contacts, FindFriendViewHolder> adapter = new
                FirebaseRecyclerAdapter<Contacts, FindFriendViewHolder>(options) {
                    @Override
                    protected void onBindViewHolder(@NonNull FindFriendViewHolder holder, final int position, @NonNull Contacts model) {
                        holder.userName.setText(model.getName());
                        holder.userStatus.setText(model.getStatus());
                        Picasso.get().load(model.getImage()).placeholder(R.drawable.avatar)
                                .into(holder.profileImage);
                        holder.itemView.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                String visitUserId = getRef(position).getKey();
                                Intent profileIntent = new Intent(FindFriendActivity.this, ProfileInfoActivity.class);
                                profileIntent.putExtra("visitUserId", visitUserId);
                                startActivity(profileIntent);
                            }
                        });
                    }

                    @NonNull
                    @Override
                    public FindFriendViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {

                        View view = LayoutInflater.from(viewGroup.getContext())
                                .inflate(R.layout.users_display_layout,viewGroup, false);
                        FindFriendViewHolder viewHolder = new FindFriendViewHolder(view);
                        return viewHolder;

                    }
                };

        findFriendsRecyclerList.setAdapter(adapter);
        adapter.startListening();
    }

    public static class FindFriendViewHolder extends RecyclerView.ViewHolder
    {
        TextView userName, userStatus;
        CircleImageView profileImage;

        public FindFriendViewHolder(@NonNull View itemView) {
            super(itemView);
            userName = itemView.findViewById(R.id.users_profile_name);
            userStatus = itemView.findViewById(R.id.users_status);
            profileImage = itemView.findViewById(R.id.users_profile_image);
        }
    }

}

1 Ответ

1 голос
/ 06 апреля 2020

Я думаю, что у вас есть опечатка, просто удалите ContactsContract из

FirebaseRecyclerOptions<ContactsContract.Contacts> options = new
                FirebaseRecyclerOptions.Builder<ContactsContract.Contacts>()
                .setQuery(userRef, Contacts.class)
                .build();
...