Desired Behaviour: Trying to display a single user info i.e. all the project titles and descriptions "protitle" and "prodesc" data from Firebase after log-in. At present, my app crashes when I log in.
Note: I am pushing username from the login page using intent.putExtra()
My database snapshot: database snapshot
Error:
2020-11-01 08:58:13.576 8840-8840/? E/m.example.star: Unknown bits set in runtime_flags: 0x800000
2020-11-01 08:58:13.700 8840-8840/com.example.start E/libc: Access denied finding property "persist.vendor.hwui.skia.reduce.overdraw.enabled"
2020-11-01 08:58:13.701 8840-8840/com.example.start E/libc: Access denied finding property "persist.vendor.fps.boost.enabled"
2020-11-01 08:58:13.701 8840-8840/com.example.start E/libc: Access denied finding property "persist.vendor.fps.app.boost.enabled"
2020-11-01 08:58:13.701 8840-8840/com.example.start E/libc: Access denied finding property "persist.vendor.fps.turbo.boost.enabled"
2020-11-01 08:58:13.701 8840-8840/com.example.start E/libc: Access denied finding property "persist.vendor.fps.hwui.frame.tracer.boost.enabled"
2020-11-01 08:58:13.701 8840-8840/com.example.start E/libc: Access denied finding property "persist.vendor.fps.hwui.frame.tracer.boost.next.draw.config"
2020-11-01 08:58:13.701 8840-8840/com.example.start E/libprocessgroup: set_timerslack_ns write failed: Operation not permitted
2020-11-01 08:58:13.701 8840-8840/com.example.start E/libc: Access denied finding property "persist.vendor.hwui.debug.fps.tracer.historysize"
2020-11-01 08:58:13.774 8840-8840/com.example.start E/m.example.star: Invalid ID 0x00000000.
2020-11-01 08:58:13.790 8840-8840/com.example.start E/m.example.star: Invalid ID 0x00000000.
2020-11-01 08:58:13.890 8840-17965/com.example.start E/libc: Access denied finding property "persist.vendor.hwui.skia.reduce.overdraw.enabled"
Main Class:
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.firebase.ui.database.FirebaseRecyclerOptions;
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;
public class BeginStart extends AppCompatActivity {
FirebaseDatabase rootNode;
DatabaseReference ref;
private RecyclerView recyclerView;
String Receive_username;
private FirebaseRecyclerOptions<model> options;
private FirebaseRecyclerAdapter<model, MyViewHolder> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.testlayout);
//receive username to connect data
Intent intent = getIntent();
Receive_username = intent.getStringExtra("push_username");
rootNode = FirebaseDatabase.getInstance();
ref = rootNode.getReference("Users").child(Receive_username);
recyclerView =findViewById(R.id.testrecycle);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
options = new FirebaseRecyclerOptions.Builder<model>().setQuery(ref, model.class).build();
adapter = new FirebaseRecyclerAdapter<model, MyViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull final MyViewHolder holder, int position, @NonNull final model model) {
//Toast.makeText(getApplicationContext(), "On Bind!", Toast.LENGTH_SHORT).show();
holder.textViewtitle.setText(model.getProtitle());
holder.textViewdesc.setText(model.getProdesc());
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.single_view_layout,parent,false);
return new MyViewHolder(v);
}
};
adapter.startListening();
recyclerView.setAdapter(adapter);
}
}
Model Class:
public class model {
String protitle, prodesc;
public model() {
}
public model(String protitle, String prodesc) {
this.protitle = protitle;
this.prodesc = prodesc;
}
public String getProtitle() {
return protitle;
}
public void setProtitle(String protitle) {
this.protitle = protitle;
}
public String getProdesc() {
return prodesc;
}
public void setProdesc(String prodesc) {
this.prodesc = prodesc;
}
}
View Handler Class:
import android.view.View;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
class MyViewHolder extends RecyclerView.ViewHolder {
TextView textViewtitle, textViewdesc;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
textViewtitle = itemView.findViewById(R.id.textviewtitle);
textViewdesc = itemView.findViewById(R.id.textviewdesc);
}
}
RecyclerView layout:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/testrecycle"
android:layout_marginRight="16dp"
android:layout_marginLeft="16dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
</androidx.recyclerview.widget.RecyclerView>
</LinearLayout>
Single view layout for RecyclerView:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textviewtitle"
android:text="title"
android:textSize="30dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textviewdesc"
android:text="email"
android:textSize="30dp"/>
</LinearLayout>
User contributions licensed under CC BY-SA 3.0