我想获得push()所做的唯一ID

时间:2018-05-06 14:21:33

标签: android firebase firebase-realtime-database

我倚靠Firebase。

我在db中推送了一些数据,如下所示

DataTF.addKeyListener(new KeyAdapter() {
            @Override
            public void keyTyped(KeyEvent eve) {
                String AllowedData="0123456789.";
                char enter = eve.getKeyChar();
                if (!AllowedData.contains(String.valueOf(enter))) {
                    eve.consume();
                }
            }       
        });  

但dataSnapshot.getKey()始终将存储库的名称命名为" test"。

如何获得push()所做的唯一ID?

在这种情况下,

唯一ID是LBpjFMIPq-kQWyBmqf7。

 -test

    -LBpjFMIPq-kQWyBmqf7

       -str : value-a

如此关键

1 个答案:

答案 0 :(得分:1)

尝试以下方法:

ref1.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
             for(DataSnapshot datas: dataSnapshot.getChildren()){
            key = datas.getKey();
            System.out.println(key);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

您需要在push()键内循环,然后使用方法getKey()来检索源位置,该位置是唯一ID。