我倚靠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
如此关键
答案 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。