Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在所有Firebase数据库中查询特定密钥并获取它';s儿童重视Android_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

在所有Firebase数据库中查询特定密钥并获取它';s儿童重视Android

在所有Firebase数据库中查询特定密钥并获取它';s儿童重视Android,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我是Firebase和Android的初学者。我的问题是搜索特定的键并检查它是否存在。当它存在时,我获取该键的URL值并将其显示给用户。 所有这些都应该在数据库中没有任何更改的情况下发生 那我该怎么办?谢谢 以下是我的数据库结构: { "images" : { "partner " : { "text" : "partner", "url" : "http://res.cloudinary.com/dg3jylcsw/image/upload/v1483565

我是Firebase和Android的初学者。我的问题是搜索特定的键并检查它是否存在。当它存在时,我获取该键的URL值并将其显示给用户。 所有这些都应该在数据库中没有任何更改的情况下发生

那我该怎么办?谢谢

以下是我的数据库结构:

{
  "images" : {
    "partner " : {
      "text" : "partner",
      "url" : "http://res.cloudinary.com/dg3jylcsw/image/upload/v1483565650/sister_x3lv6j.png"
    },
    "sister" : {
      "text " : "sister",
      "url" : "http://res.cloudinary.com/dg3jylcsw/image/upload/v1483565650/sister_x3lv6j.png"
    }
  }
}
我的代码:

package com.example.android.testy;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import com.firebase.client.Firebase;
import com.firebase.client.Query;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Firebase.setAndroidContext(this);

        Button bt = (Button)findViewById(R.id.button);
        bt.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                EditText input = (EditText) findViewById(R.id.editText);
                String string = input.getText().toString();
                Firebase rootRef = new Firebase("https://test-219f8.firebaseio.com/images");
                Query queryRef = rootRef.orderByKey().equalTo(String.valueOf(input));
            }
        });

    }


}
主要活动:

package com.example.android.testy;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.firebase.client.ChildEventListener;
import com.firebase.client.DataSnapshot;
import com.firebase.client.Firebase;
import com.firebase.client.FirebaseError;
import com.firebase.client.Query;
import com.firebase.client.ValueEventListener;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Firebase.setAndroidContext(this);

        Firebase rootRef = new Firebase("https://test-219f8.firebaseio.com/images");
        Query queryRef = rootRef.orderByKey().equalTo("sister");
        queryRef.addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                test data = dataSnapshot.getValue(test.class);

                System.out.println(data.getUrl());
            }

            @Override
            public void onChildChanged(DataSnapshot dataSnapshot, String s) {

            }

            @Override
            public void onChildRemoved(DataSnapshot dataSnapshot) {

            }

            @Override
            public void onChildMoved(DataSnapshot dataSnapshot, String s) {

            }

            @Override
            public void onCancelled(FirebaseError firebaseError) {

            }
        });

    }


}
该测试类包含我们想要从特定的键子级检索的内容

测试等级:

package com.example.android.testy;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@JsonIgnoreProperties(ignoreUnknown=true)
public class test {
    private String text;
    private String url;

    public test() {
        // empty default constructor, necessary for Firebase to be able to deserialize blog posts
    }
    public String getText() {
        return text;
    }

    public String getUrl() {
        return url;
    }
}

你的问题很不清楚。您是在特定位置搜索精确值,还是对整个数据库进行常规文本搜索?到目前为止你试过什么?请将所有相关代码和数据以纯文本而不是图像的形式包含在内。很抱歉,我将更新我的问题以澄清问题,我没有附加任何代码,因为我不知道在引用我的数据库后要做什么。是的,我想搜索确切的密钥,例如,sister,当我找到它时,我应该获取url值并将其显示给用户,我希望是Clear,它将有助于包括所有相关代码、示例数据、调试日志和版本信息,以便我们能够完全理解问题。请参阅和。我希望现在已经足够清楚:DUse GSon将JSON字符串反序列化到您的模型中,然后您可以检查它是否为null/空