Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.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 studio的FirebaseRecyclerAdapter适配器无法将字符串转换为对象_Android_Firebase Realtime Database - Fatal编程技术网

使用android studio的FirebaseRecyclerAdapter适配器无法将字符串转换为对象

使用android studio的FirebaseRecyclerAdapter适配器无法将字符串转换为对象,android,firebase-realtime-database,Android,Firebase Realtime Database,当我使用FirebaseRecyclerAdapter类时,会出现以下错误: 添加这两行代码后,无法将java.lang.String类型的对象转换为com.photoblog.kyrillos.blog.Model.Users类型,它会崩溃 recyclerView.setHasFixedSize(true); recyclerView.setLayoutManager(linearLayoutManager) 我的代码是 import android.content.Context; im

当我使用FirebaseRecyclerAdapter类时,会出现以下错误: 添加这两行代码后,无法将java.lang.String类型的对象转换为com.photoblog.kyrillos.blog.Model.Users类型,它会崩溃 recyclerView.setHasFixedSize(true); recyclerView.setLayoutManager(linearLayoutManager)

我的代码是

import android.content.Context; 
import android.content.Intent; 
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.photoblog.kyrillos.blog.Model.Users;
import com.photoblog.kyrillos.blog.R;

import de.hdodenhof.circleimageview.CircleImageView;

public class HomeActivity extends AppCompatActivity {

    private Toolbar homeToolbar;
    private FirebaseAuth mAuth;

    private DatabaseReference mDatabase;
    private RecyclerView recyclerView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);
        mAuth = FirebaseAuth.getInstance();
        mDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(mAuth.getCurrentUser().getUid());
        homeToolbar = findViewById(R.id.homeToolbar);
        setSupportActionBar(homeToolbar);
        getSupportActionBar().setTitle("Home");

        recyclerView = findViewById(R.id.recyclerView);
        recyclerView.setHasFixedSize(true);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));
    }


    @Override
    protected void onStart() {
        super.onStart();
        FirebaseRecyclerAdapter<Users,BlogViewHolder > adapter =
                new FirebaseRecyclerAdapter<Users, BlogViewHolder >(
                        Users.class,
                        R.layout.blog_row,
                        BlogViewHolder .class,
                        mDatabase){
                    @Override
                    protected void populateViewHolder(BlogViewHolder  viewHolder, Users model, int position) {
                        viewHolder.setUserImage(HomeActivity.this,model.getImage());
                        viewHolder.setUserName(model.getName());
                        viewHolder.setPostImage(HomeActivity.this,model.getPostImage());
                        viewHolder.setPostDescription(model.getPostDescription());
                    }
                };
        recyclerView.setAdapter(adapter);
    }

    public static class BlogViewHolder extends RecyclerView.ViewHolder{
        View mView;
        public BlogViewHolder (@NonNull View itemView) {
            super(itemView);
            mView = itemView;
        }
        public void setUserImage(Context context,String url){
            CircleImageView imageView = mView.findViewById(R.id.postUserImageView);
            Glide.with(context)
                    .load(url)
                    .into(imageView);
        }
        public void setUserName(String userName){
            TextView view = mView.findViewById(R.id.postUserNameView);
            view.setText(userName);
        }

        public void setPostImage(Context context,String postImage){
            ImageView postImageView = mView.findViewById(R.id.postImageView);
            Glide.with(context)
                    .load(postImage)
                    .into(postImageView);
        }

        public void setPostDescription(String postDescription){
            TextView postTextView = mView.findViewById(R.id.postTextView);
            postTextView.setText(postDescription);
        }

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main_menu,menu);
        return super.onCreateOptionsMenu(menu);
    }


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId() == R.id.action_add){
            startActivity(new Intent(HomeActivity.this,PostActivity.class));
        } else if (item.getItemId() == R.id.action_settings) {
            startActivity(new Intent(HomeActivity.this,SettingsActivity.class));
        } else if (item.getItemId() == R.id.action_logOut) {
            mAuth.signOut();
            startActivity(new Intent(HomeActivity.this,LoginActivity.class));
            finish();
        }
        return super.onOptionsItemSelected(item);
    }
}

对不起,伙计们,我找到了错误的确切位置。 而是这一行

mDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(mAuth.getCurrentUser().getUid());
我应该写这个


无论如何,感谢您。您在哪一行出现此错误?它没有给我唯一的行,无法将java.lang.String类型的对象转换为com.photoblog.kyrillos.blog.Model.Users类型
mDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(mAuth.getCurrentUser().getUid());
mDatabase = FirebaseDatabase.getInstance().getReference().child("Users");