tauk

Lab 11 MainActivity.java - reading from Firebase

Jun 16th, 2021
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.35 KB | None | 0 0
  1. package com.example.lab11readingdata;
  2.  
  3. import androidx.annotation.NonNull;
  4. import androidx.appcompat.app.AppCompatActivity;
  5.  
  6. import android.os.Bundle;
  7. import android.view.View;
  8. import android.widget.TextView;
  9.  
  10. import com.google.firebase.FirebaseApp;
  11. import com.google.firebase.database.DataSnapshot;
  12. import com.google.firebase.database.DatabaseError;
  13. import com.google.firebase.database.DatabaseReference;
  14. import com.google.firebase.database.FirebaseDatabase;
  15. import com.google.firebase.database.ValueEventListener;
  16.  
  17. import org.jetbrains.annotations.NotNull;
  18.  
  19. import java.util.ArrayList;
  20. import java.util.List;
  21.  
  22. public class MainActivity extends AppCompatActivity {
  23.  
  24.     private TextView tvData;
  25.     private FirebaseDatabase database;
  26.     private DatabaseReference reference;
  27.  
  28.  
  29.     @Override
  30.     protected void onCreate(Bundle savedInstanceState) {
  31.         super.onCreate(savedInstanceState);
  32.         setContentView(R.layout.activity_main);
  33.  
  34.         tvData = findViewById(R.id.tvData);
  35.  
  36.         database = FirebaseDatabase.getInstance();
  37.         reference = database.getReference("cars");
  38.     }
  39.  
  40.     public void onReadSingleClick(View view) {
  41.         reference.child("1").addListenerForSingleValueEvent(
  42.                 new ValueEventListener() {
  43.                     @Override
  44.                         public void onDataChange(@NonNull @org.jetbrains.annotations.NotNull DataSnapshot dataSnapshot) {
  45.  
  46.                             int plate = Integer.parseInt(dataSnapshot.child("plate").getValue().toString());
  47.                             String make = dataSnapshot.child("make").getValue().toString();
  48.                             String model = dataSnapshot.child("model").getValue().toString();
  49.                             int price = Integer.parseInt(dataSnapshot.child("price").getValue().toString());
  50.                             int year = Integer.parseInt(dataSnapshot.child("year").getValue().toString());
  51.  
  52.                             String details = "Plate: " + plate + "\n" +
  53.                                     "Make : " + make  + "\n" +
  54.                                     "Model: " + model + "\n" +
  55.                                     "Price: " + price + "\n" +
  56.                                     "Year : " + year;
  57.  
  58.                             tvData.setText(details);
  59.  
  60.                     }
  61.  
  62.                         @Override
  63.                         public void onCancelled(@NonNull @org.jetbrains.annotations.NotNull DatabaseError error) {
  64.  
  65.                         }
  66.                 }
  67.         );
  68.     }
  69.  
  70.     public void onReadAllClick(View view) {
  71.         database.getReference("cars").addValueEventListener(new ValueEventListener() {
  72.  
  73.             @Override
  74.             public void onDataChange(@NonNull @NotNull DataSnapshot dataSnapshot) {
  75.                 List<Car> carList = new ArrayList<>();
  76.                 for (DataSnapshot node: dataSnapshot.getChildren()) {
  77.                     Car car = node.getValue(Car.class);
  78.                     carList.add(car);
  79.                 }
  80.  
  81.                updateUI(carList);
  82.             }
  83.  
  84.             @Override
  85.             public void onCancelled(@NonNull @NotNull DatabaseError error) {
  86.  
  87.             }
  88.         });
  89.     }
  90.  
  91.     private void updateUI(List<Car> cars) {
  92.         tvData.setText("");
  93.         for (Car car : cars) {
  94.           tvData.append(car + "\n");
  95.         }
  96.     }
  97. }
Add Comment
Please, Sign In to add comment