services play auth android firebase-database firebaseui

android - auth - firebaseui version firebase play services version



Firebase populateViewHolder nunca se llama (1)

El problema es que RecyclerView tiene una altura de WrapContent, por lo tanto, asegúrese de que la altura de su reciclador esté configurada en Match_Parent. Esto solucionará este problema.

<android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="vertical" />

Tengo debajo de la estructura en mi consola firebase. Estoy tratando de leer los valores y mostrar todos los usuarios pero populateViewHolder nunca se llama.

users +OW5BYennVRXvfzOjfKpup9rZEYv2 -email: "[email protected]" -username: "abc"

Mientras esté en el código a continuación, recibo el recuento de elementos como 1

mAdapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() { @Override public void onItemRangeInserted(int positionStart, int itemCount) { super.onItemRangeInserted(positionStart, itemCount); int friendlyMessageCount = mAdapter.getItemCount(); int lastVisiblePosition = mManager.findLastCompletelyVisibleItemPosition(); // If the recycler view is initially being loaded or the // user is at the bottom of the list, scroll to the bottom // of the list to show the newly added message. if (lastVisiblePosition == -1 || (positionStart >= (friendlyMessageCount - 1) && lastVisiblePosition == (positionStart - 1))) { recyclerView.scrollToPosition(positionStart); } } });

Aquí está mi código

@Override public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreateView(inflater, container, savedInstanceState); View rootView = inflater.inflate(R.layout.fragment_home_page, container, false); mDatabase = FirebaseDatabase.getInstance().getReference(); recyclerView = (RecyclerView) rootView.findViewById(R.id.recycler_view); recyclerView.setHasFixedSize(true); return rootView; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); mManager = new LinearLayoutManager(getActivity()); mManager.setReverseLayout(true); mManager.setStackFromEnd(true); Query postsQuery = mDatabase.child("users"); mAdapter = new FirebaseRecyclerAdapter<User, PostViewHolder>(User.class, R.layout.post, PostViewHolder.class, postsQuery) { @Override protected void populateViewHolder(PostViewHolder viewHolder, User model, int position) { final DatabaseReference postRef = getRef(position); final String postKey = postRef.getKey(); viewHolder.bindToPost(model); } }; mAdapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() { @Override public void onItemRangeInserted(int positionStart, int itemCount) { super.onItemRangeInserted(positionStart, itemCount); int friendlyMessageCount = mAdapter.getItemCount(); int lastVisiblePosition = mManager.findLastCompletelyVisibleItemPosition(); // If the recycler view is initially being loaded or the // user is at the bottom of the list, scroll to the bottom // of the list to show the newly added message. if (lastVisiblePosition == -1 || (positionStart >= (friendlyMessageCount - 1) && lastVisiblePosition == (positionStart - 1))) { recyclerView.scrollToPosition(positionStart); } } }); recyclerView.setAdapter(mAdapter); }

PlaceHolder:

public class PostViewHolder extends RecyclerView.ViewHolder { public TextView title, emailt; public PostViewHolder(View view) { super(view); title = (TextView) view.findViewById(R.id.title); emailt = (TextView) view.findViewById(R.id.count); } public void bindToPost(User post, View.OnClickListener starClickListener) { title.setText(post.username); emailt.setText(post.email + "Likes"); } public void bindToPost(User post) { title.setText(post.username); emailt.setText(post.email + "Likes"); } }