package
com.example.firebaseproject
import
android.content.Context
import
android.os.Bundle
import
android.util.Log
import
android.widget.Toast
import
androidx.activity.ComponentActivity
import
androidx.activity.compose.setContent
import
androidx.compose.foundation.background
import
androidx.compose.foundation.layout.*
import
androidx.compose.material.*
import
androidx.compose.runtime.Composable
import
androidx.compose.runtime.mutableStateOf
import
androidx.compose.runtime.remember
import
androidx.compose.ui.Alignment
import
androidx.compose.ui.Modifier
import
androidx.compose.ui.graphics.Color
import
androidx.compose.ui.platform.LocalContext
import
androidx.compose.ui.text.font.FontFamily
import
androidx.compose.ui.text.font.FontStyle
import
androidx.compose.ui.text.font.FontWeight
import
androidx.compose.ui.text.style.TextAlign
import
androidx.compose.ui.unit.dp
import
androidx.compose.ui.unit.sp
import
com.example.firebaseproject.ui.theme.FirebaseProjectTheme
import
com.example.firebaseproject.ui.theme.greenColor
import
com.google.firebase.database.DataSnapshot
import
com.google.firebase.database.DatabaseError
import
com.google.firebase.database.FirebaseDatabase
import
com.google.firebase.database.ValueEventListener
class
MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super
.onCreate(savedInstanceState)
setContent {
FirebaseProjectTheme {
Surface(
modifier = Modifier.fillMaxSize(), color = MaterialTheme.colors.background
) {
Scaffold(
topBar = {
TopAppBar(backgroundColor = greenColor,
title = {
Text(
text =
"GFG"
,
modifier = Modifier.fillMaxWidth(),
textAlign = TextAlign.Center,
color = Color.White
)
})
}) {
firebaseUI(LocalContext.current)
}
}
}
}
}
}
@Composable
fun firebaseUI(context: Context) {
val message = remember {
mutableStateOf(
""
)
}
val firebaseDatabase = FirebaseDatabase.getInstance();
val databaseReference = firebaseDatabase.getReference(
"Data"
);
databaseReference.addValueEventListener(object : ValueEventListener {
override fun onDataChange(snapshot: DataSnapshot) {
val value = snapshot.getValue(String::
class
.java)
message.value = value!!
}
override fun onCancelled(error: DatabaseError) {
Toast.makeText(context,
"Fail to get data."
, Toast.LENGTH_SHORT).show()
}
})
Column(
modifier = Modifier
.fillMaxHeight()
.fillMaxWidth()
.background(Color.White),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
Text(
textAlign = TextAlign.Center,
text =
"Retrieve Data from Firebase Realtime Database in Android"
,
color = greenColor,
fontWeight = FontWeight.Bold,
fontFamily = FontFamily.Default,
fontSize =
18
.sp, modifier = Modifier.padding(
5
.dp)
)
Spacer(modifier = Modifier.height(
20
.dp))
Text(
text = message.value,
fontSize =
20
.sp,
fontStyle = FontStyle.Normal,
fontWeight = FontWeight.Bold,
textAlign = TextAlign.Center
)
}
}