簡體   English   中英

如何從包含唯一鍵的firebase實時數據庫中獲取字符串

[英]How to get string from firebase realtime db that contain in unique key

我想從這里得到一個字符串:

firebase DB

,但它有一個獨特的關鍵父母。 我如何從db獲取字符串? 我試過了:

    firebaseAuth = FirebaseAuth.getInstance();
    fUID =firebaseAuth.getCurrentUser().getUid();
    itemsUrl ="https://nextweaverproject.firebaseio.com/users/" + fUID  ;
    mDatabase = FirebaseDatabase.getInstance();
    final DatabaseReference myRef = mDatabase.getReferenceFromUrl(itemsUrl);
    myRef.addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                Map<String, Object> td = (HashMap<String,Object>)    dataSnapshot.getValue();
                List<Object> values = new ArrayList<Object>(td.values());

                    strFb = new ArrayList<String>();
                    strFb.add(values.get(0).toString());


               // strFb.add(urlLong);
                Log.v("test","   "  +  strFb.get(strFb.size()-1));

        }

但它返回db中的所有對象。

您可以使用child從數據庫樹中獲取數據:

myRef.child("Scenes").child("Scene").("******").
(*****).addChildEventListener(new ChildEventListener() {

這樣你應該鏈接你的領域。

您還可以使用addValueEventListener, addListenerForSingleValueEvent 您可以在此處閱讀相關信息: https//firebase.google.com/docs/database/android/retrieve-data

謝謝你們。 我找到了我的解決方案:

myRef.child("Scenes").child("Scene").addValueEventListener(new ValueEventListener() {
               @Override
               public void onDataChange(DataSnapshot dataSnapshot) {
                   for (DataSnapshot children : dataSnapshot.getChildren()) {
                       for (DataSnapshot child : children.getChildren()) {
                           //Log.v("key1","   " + child.getKey());
                           if(child.getKey().equals("Thumb")){
                               for (DataSnapshot child2 : child.getChildren()) {
                                   //Log.v("key2","   " + child2.getValue(String.class));
                                   for (DataSnapshot child3 : child2.getChildren()) {
                                       //Log.v("key3","   " + child3.getKey());
                                       if(child3.getKey().equals("LongUrl")){
                                           Log.v("key4","   " + child3.getValue(String.class));
                                            thumbUrl.add(child3.getValue().toString());
                                       }
                                   }
                               }
                           }
                       }

                       Log.v("keyResult","   " + thumbUrl);
                      // Log.v("key2","   " + thumbUrl);
                   }
               }

               @Override
               public void onCancelled(DatabaseError databaseError) {

               }
           });

結果: 結果

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM