繁体   English   中英

我想获得 push() 制作的唯一 ID

[英]I want to get a unique id that push() had made

我倾向于 Firebase。

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

 -test -LBpjFMIPq-kQWyBmqf7 -str : value-a

但 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.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) {

        }
    });

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM