我有一个Arduino,它将读数推送到数据库,我有一个Android应用程序,可以检索读数并在TextView中显示它.

enter image description here

我的应用程序一直在获取TextView的所有内容,键和值.

我如何才能解决这个问题并且只显示最后一个值?

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    // Initialize Firebase App
    FirebaseApp.initializeApp(this)

    // Inflate layout
    Binding = ActivityMainBinding.inflate(layoutInflater)
    setContentView(R.layout.activity_landing)

    // Initialize Firebase Database query
    val query = FirebaseDatabase.getInstance("https://voltageread-22aa9-default-rtdb.firebaseio.com/")
        .reference
        .orderByKey()
        .limitToLast(1)

    // Fetch data from Firebase Realtime Database and save it in a variable
    query.addListenerForSingleValueEvent(object : ValueEventListener {
        override fun onDataChange(snapshot: DataSnapshot) {
            if (snapshot.exists() && snapshot.value != null) {
                val lastChildSnapshot = snapshot.children.lastOrNull()
                if (lastChildSnapshot != null) {
                    val data = lastChildSnapshot.value.toString()
                    if (!data.isNullOrEmpty()) {
                        Log.d("Firebase", "Data received: $data ")
                        // Update the UI with the received data
                        Binding.voltage.text = data.substringAfter('=')
                    }
                }
            }
        }

        override fun onCancelled(error: DatabaseError) {
            Log.e("Firebase", "Data fetching cancelled: ${error.message}  ")
        }
    })

我试过使用内置的电池板,但似乎什么都不起作用

推荐答案

在Firebase中使用查询操作(如orderByKeylimitToLast)时,它们对您引用的数据库中路径的直接子 node 进行操作.因为您在数据库的根上操作,所以对该根目录下的键进行排序和筛选,只剩下一个子键:all.

相反,您要做的是对all路径本身进行操作,以便Firebase对下面的-N...个子 node 进行排序和过滤.在代码中,这将是:

val query = FirebaseDatabase.getInstance("https://voltageread-22aa9-default-rtdb.firebaseio.com/")
    .reference
    .child("all") // ?
    .orderByKey()
    .limitToLast(1)

Android相关问答推荐

使用不同的Google帐户登录

Android Bundle getSerializable(String?):'可序列化?&# 39、被抛弃了在Java中被弃用

Android可组合继承?

在Android上使用XSLT文件转换XML文件

Jetpack创作动画断断续续变化的观点

react 本机生成失败,出现异常.错误:无法确定';<;宏/>;的类型

使用RecycleView和Diffutils时从列表中删除项目时出现问题

Dispatchers中的Kotlin协同程序.Main没有';t块主螺纹

根据另一个数组的值对数组进行排序

以下代码如何在 Android 上运行

Android 模拟器 Wifi 连接没有互联网

为什么集成React Native时compileSdkVersion错误?

在 Jetpack Compose 中重用具有重复代码的列

try 使用 ViewPager2 实现滑动视图时出现类型不匹配错误

Hilt 依赖注入重复绑定错误

Jetpack Compose:mutableStateOf 不随流量更新

在 jetpack compose 中使用 .shadow 和 Button 会导致问题

react-native-config 在发布版本中不起作用

任何 IRCTC 的公共 API 来判断 PNR 状态和座位可用性?

react-native android项目未找到错误