Мой предварительный просмотр Android Studio не показывает данные в реальном времени от FirebaseAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Мой предварительный просмотр Android Studio не показывает данные в реальном времени от Firebase

Сообщение Anonymous »

Я новичок в Android Studio и Koitlin Programming в целом. Я делаю приложение, чтобы показать данные для влажности и датчика влажности почвы. Мой код, кажется, работает хорошо, так как нет ошибки, но я все еще не могу заставить свой Pivewiew, чтобы показать какие -либо данные из Firebase, и это показывает только 0 < /p>
Я попытался исправить любые доступные ошибки и убедиться, что я называю правильный путь в Firebase. Мое приложение в данный момент не выглядит красиво, я планирую исправить его после того, как данные можно получить < /p>
Вот код < /p>
data.kt
package com.example.babipunyaproject

import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.example.babipunyaproject.databinding.ActivityDataBinding
import com.google.firebase.database.DataSnapshot
import com.google.firebase.database.DatabaseError
import com.google.firebase.database.ValueEventListener
import com.google.firebase.database.ktx.database
import com.google.firebase.ktx.Firebase
import az.plainpie.PieView
import az.plainpie.animation.PieAngleAnimation

class Data : AppCompatActivity() {
private lateinit var pieViewHum: PieView
private lateinit var pieViewSoil: PieView
private lateinit var binding: ActivityDataBinding

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Log.d("DataActivity", "onCreate called")
binding = ActivityDataBinding.inflate(layoutInflater)
pieViewHum = binding.pieViewHum
pieViewSoil = binding.pieViewSoil

setContentView(binding.root)
Log.d("DataActivity", "Binding initialized")

// Initialize Firebase
val database = Firebase.database
Log.d("DataActivity", "Firebase database initialized")

// Fetch humidity data
val humidityRef = database.getReference("DHT11 testing/sensor/humidity")
humidityRef.addValueEventListener(object : ValueEventListener {
override fun onDataChange(snapshot: DataSnapshot) {
Log.d("DataActivity", "Humidity data fetched")
val humidity = snapshot.getValue(String::class.java)?.toFloatOrNull() ?: 0f
updatePieView(binding.pieViewHum, humidity)
}

override fun onCancelled(error: DatabaseError) {
Log.e("DataActivity", "Failed to fetch humidity data: ${error.message}")
}
})

// Fetch soil moisture data
val soilMoistureRef = database.getReference("DHT11 testing/sensor/moistureValue")
soilMoistureRef.addValueEventListener(object : ValueEventListener {
override fun onDataChange(snapshot: DataSnapshot) {
Log.d("DataActivity", "Soil moisture data fetched")
val soilMoisture = snapshot.getValue(String::class.java)?.toFloatOrNull() ?: 0f
updatePieView(binding.pieViewSoil, soilMoisture)
}

override fun onCancelled(error: DatabaseError) {
Log.e("DataActivity", "Failed to fetch soil moisture data: ${error.message}")
}
})

ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.linearLayout2)) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
insets
}

}

private fun updatePieView(pieView: PieView, value: Float) {
val valueString = value.toInt().toString() // Convert float to string
pieView.percentage = value // Keep the value for visualization
pieView.setInnerText(valueString) // Display the value as a string inside the PieView
pieView.pieInnerPadding = 30
val animation = PieAngleAnimation(pieView)
animation.duration = 2000
pieView.startAnimation(animation)
}

}
< /code>
Aactivity_data.xml









































Подробнее здесь: https://stackoverflow.com/questions/795 ... m-firebase
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»