Firebase Database Rules: Should be like this if no authentication is provided
{
/* Visit https://firebase.google.com/docs/database/security to learn more about security rules. */
"rules": {
".read": true,
".write": true
}
}
Firebase Storage Rules L: Should be like this if no authentication provided
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write;
}
}
}
Add image urls from Firebase Storage Section
The Firebase structure would be
{
"Data" : {
"01" : {
"desc" : "Believe yourself first.",
"image" : "https://firebasestorage.googleapis.", --This isthe url which we can get at the Storage area in Firebase
"title" : "Believe"
},
"02" : {
"desc" : "The Best is yet to come",
"image" : "https://firebasestorage.googleapis.co",
"title" : "The Best"
}
},
Need 3 java class mainly
Activity Class -->FirebaseActivity.java -->Here we send query to the database set the FirebaseAdapter to the recyclerview
Model Class -->FireModel.java -->or POJO these variable names must be the same with the firebase keys.
ViewHolder Class-->ViewHolder.java Here we define and set the view means cardview
public class FirebaseActivity extends AppCompatActivity {
RecyclerView recyclerView;
FirebaseDatabase mFirebaseDatabase;
DatabaseReference mDatabaseReference;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_firebase);
recyclerView = (RecyclerView)findViewById(R.id.recycler_view);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
mFirebaseDatabase = FirebaseDatabase.getInstance();
mDatabaseReference = mFirebaseDatabase.getReference("Data");
}
@Override
protected void onStart() {
super.onStart();
FirebaseRecyclerAdapter<QuotesFireModel,ViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<QuotesFireModel, ViewHolder>(
QuotesFireModel.class,
R.layout.quote_card_item,
ViewHolder.class,
mDatabaseReference
) {
@Override
protected void populateViewHolder(ViewHolder viewHolder, QuotesFireModel model, int position) {
viewHolder.setData(getApplicationContext(),model.getTitle(),model.getDesc(),model.getQuoteImage());
}
};
recyclerView.setAdapter(firebaseRecyclerAdapter);
}
}
----------------------------------------------------------------------------------------
public class FireModel {
public String title,desc,image;
public FireModel() {
}
//
Followed getters and setters
}
--------------------------------------------------------------------------------------------
public class ViewHolder extends RecyclerView.ViewHolder {
View mView;
public ViewHolder(@NonNull View itemView) {
super(itemView);
mView = itemView;
}
public void setData(Context ctx,String title,String desc,String image){
TextView ttitle = mView.findViewById(R.id.t_title);
TextView tdesc = mView.findViewById(R.id.t_desc);
ImageView iimage = mView.findViewById(R.id.thumbnail);
ttitle.setText(title);
tdesc.setText(desc);
Glide.with(ctx).load(image).into(iimage);
}
}
---Dependencies requred
implementation 'com.google.firebase:firebase-storage:16.0.1'
implementation 'com.google.firebase:firebase-auth:16.0.3'
implementation 'com.google.firebase:firebase-database:16.0.1'
implementation 'com.google.firebase:firebase-core:16.0.1'
testImplementation 'junit:junit:4.12'
implementation 'com.github.bumptech.glide:glide:3.7.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
implementation 'com.firebaseui:firebase-ui-storage:0.6.0'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.firebaseui:firebase-ui-database:0.6.0' //This is must and should to use FirebaseRecyclerAdapter
To get the text and image from Firebase and populate recyclerview
Be the first to comment
You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.