java - Firebase - 如何检索数据库项目的 ID?

标签 java android firebase firebase-realtime-database

我建立了一个简单的数据库,其中包含问题和这些问题的答案。很简单,只有 5 个字符串,仅此而已。代码如下:

questions
 -KbFaJVwP1HKu-rHfrjT
     ans1: 
        "test"
     ans2: 
        "1"
     ans3: 
        "2"
     ans4: 
        "3"
     question: 
        "Testing"
 -KbFlP8A08y2k4Vp1XET
     ans1: 
        "test"
     ans2: 
        "test2"
     ans3: 
        "test3"
     ans4: 
        "test4"
     question: 
        "Testing"

我提交了两个条目只是为了测试一下,但我想知道如何返回这些问题的 ID?我需要一个唯一标识符,在这些情况下为 KbFaJVwP1HKu-rHfrjTKbFlP8A08y2k4Vp1XET,但是使用 getKey 方法,我得到了“问题”,因为它被设置为主键。

如何解决这个问题?我的数据库设置不正确吗?

最佳答案

如果在调用 getKey() 时遇到问题,您可以使用以下方法迭代子项:

for( DataSnapshot child : dataSnapshot.getChildren() ) {
    String childKey = child.getKey();
    ...
}

这将循环两次,其中childKey将为-KbFaJVwP1HKu-rHfrjT-KbFlP8A08y2k4Vp1XET

关于java - Firebase - 如何检索数据库项目的 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41833889/

相关文章:

firebase - 如何读取 map 中的 firestore 值?

java - 有没有办法从android中的firestore中的数组获取数据

java - 如何使用 Ant 将整个 lib 目录(包括所有子目录)放在类路径中?

java - Java 中的 DB2 连接速度极慢

java - 运行时的 MapActivity ClassDefNotFoundException

Android从tablayout选项卡中删除自定义 View

java:如何将变量从一种类型动态转换为另一种类型?

java - Eclipse 找不到 JVM.dll

java - Android,Java,创建保持纵横比的缩略图

ios - 与 Firebase 一起创建 DataManger