Skip to content

Instantly share code, notes, and snippets.

@zulu15
Created August 1, 2019 23:50
Show Gist options
  • Save zulu15/cf1004fb816b43a00e48864060531ee7 to your computer and use it in GitHub Desktop.
Save zulu15/cf1004fb816b43a00e48864060531ee7 to your computer and use it in GitHub Desktop.
ListView implementation with FirebaseUI
package com.zulu.fireapp;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ListView;
import android.widget.TextView;
import com.firebase.ui.database.FirebaseListAdapter;
import com.firebase.ui.database.FirebaseListOptions;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
public class Example2 extends AppCompatActivity {
private DatabaseReference mDatabaseRef;
private ListView listView ;
private FirebaseListAdapter<String> fireBaseListAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_example2);
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
mDatabaseRef = FirebaseDatabase.getInstance().getReferenceFromUrl("https://fireapp-bd18f.firebaseio.com/Usuarios");
FirebaseListOptions<String> options = new FirebaseListOptions.Builder<String>()
.setQuery(mDatabaseRef, String.class)
.setLayout(android.R.layout.simple_list_item_1)
.build();
fireBaseListAdapter = new FirebaseListAdapter<String>(options) {
@Override
protected void populateView(@NonNull View v, @NonNull String model, int position) {
TextView textView = (TextView) v.findViewById(android.R.id.text1);
textView.setText(model);
Log.i("Example","populateView called, model: "+model + " pos "+position);
}
};
listView = (ListView) findViewById(R.id.myListView);
listView.setAdapter(fireBaseListAdapter);
}
@Override
protected void onStart() {
super.onStart();
fireBaseListAdapter.startListening();
}
@Override
protected void onStop() {
super.onStop();
fireBaseListAdapter.stopListening();
}
}
//Dependencias build.gradlle
/*
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.zulu.fireapp"
minSdkVersion 16
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:multidex:1.0.3'
//Firebase UI dependencies
// FirebaseUI for Firebase Realtime Database
implementation 'com.firebaseui:firebase-ui-database:5.0.0'
// FirebaseUI for Firebase Auth
implementation 'com.firebaseui:firebase-ui-auth:5.0.0'
implementation 'com.android.support:design:28.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
apply plugin: 'com.google.gms.google-services' // Google Play services Gradle plugin
Add this to Manifest file
android:name="android.support.multidex.MultiDexApplication"
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment