Java 我想获得push()生成的唯一id
我靠在火场上 我在db中推送了一些数据,如下所示 但是dataSnapshot.getKey总是在测试中获取存储库的名称 如何获取push生成的唯一id 在本例中,唯一id是LBpjFMIPq-kQWyBmqf7Java 我想获得push()生成的唯一id,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我靠在火场上 我在db中推送了一些数据,如下所示 但是dataSnapshot.getKey总是在测试中获取存储库的名称 如何获取push生成的唯一id 在本例中,唯一id是LBpjFMIPq-kQWyBmqf7 package com.example.happy.firebasetest; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import com.google.firebase
package com.example.happy.firebasetest;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
public class MainActivity extends AppCompatActivity {
String key;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference ref1 = database.getReference("test");
ref1.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
key = dataSnapshot.getKey();
System.out.println(key);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
因此,请按键尝试以下操作:
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) {
}
});
您需要在按键内循环,然后使用getKey方法检索唯一id的源位置。谢谢!你救了我的命!
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) {
}
});