错误:找不到合适的方法'setQuery(com.google.firebase.DatabaseReference [英] Error: no suitable method found 'setQuery(com.google.firebase.DatabaseReference

查看:92
本文介绍了错误:找不到合适的方法'setQuery(com.google.firebase.DatabaseReference的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在聊天应用程序中构建FindFriendActivity,正在使用Firebase UI,但在此特定行上出现错误: .setQuery(userRef, Contacts.class)

I'm building a FindFriendActivity in a chat app, I'm using Firebase UI, but I get an error on this particular line : .setQuery(userRef, Contacts.class)

无法解析方法'setQuery(com.google.firebase.DatabaseReference,java.lang.class)'

这些是我在构建时遇到的错误:

Those are the errors I'm getting when building :

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);
        }
    }

}

推荐答案

我认为您有错字,只需从

I think you have a typo, just remove ContactsContract from

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

这篇关于错误:找不到合适的方法'setQuery(com.google.firebase.DatabaseReference的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆