相关疑难解决方法(0)

Firebase 查询等于多个值

我需要使用一种叫做 queryEqualTo() 的 firebase 过滤器,但我需要能够过滤多种内容,例如 queryEqualTo("Science", "English")

我怎样才能做到这一点?

firebase swift firebase-realtime-database

5
推荐指数
0
解决办法
2719
查看次数

如何从具有多种条件的firebase数据库中选择数据

这是我的数据库:

在此处输入图片说明

我正在尝试从 firebase 数据库中检索我的数据。我的执行如下: select * from logindb where loginname='pandi' and loginpass='1234'。

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my__value);

        mlist = (ListView) findViewById(R.id.mylist);

        Intent intent = getIntent();
        databaseReference = FirebaseDatabase.getInstance().getReference("logindb");

        String search = intent.getStringExtra("mval");

        databaseReference = FirebaseDatabase.getInstance().getReference();

        Query query = databaseReference.child("loginname").orderByChild("loginId").equalTo(search);
        query.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                if (dataSnapshot.exists()) {
                    // dataSnapshot is the "issue" node with all children with id 0
                    for (DataSnapshot issue : dataSnapshot.getChildren()) {
                        String address=issue.child("address").getValue().toString();
                        Toast.makeText(getApplicationContext(), address, Toast.LENGTH_SHORT).show();
                    }

                }
            }

            @Override …
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-realtime-database

5
推荐指数
0
解决办法
1282
查看次数

如何在Firebase中执行以下查询?(不止一个条件)

考虑以下firebase结构:

{
  "users" : {
    "00:03:aa:dc:1c:2b" : {
      "firstName" : " Ofek",
      "groupName" : "thailand",
      "lastName" : "Ron",
      "registration" : {
        "type" : "regular",
        "time" : 1418288589636
      },
      "phoneNumber" : "345345345"
    },
    "04:46:65:8D:60:C6" : {
      "firstName" : " Ofek",
      "groupName" : "thailand",
      "lastName" : "Ron",
       "registration" : {
        "type" : "regular",
        "time" : 1418288589630
      },
      "phoneNumber" : "345345345"
    },
  }
}
Run Code Online (Sandbox Code Playgroud)

你如何实现以下查询:

SELECT * FROM USERS WHERE groupName="thailand" and registration.time>=1418288589631
Run Code Online (Sandbox Code Playgroud)

我试图像这样做:

fireBase.orderByChild("groupName").startAt("thailand").endAt("thailand").orderByChild("time").startAt("1418288589631")
Run Code Online (Sandbox Code Playgroud)

但由于firebase不允许多个订单,因此引发了异常......

有任何想法吗?

android firebase

4
推荐指数
1
解决办法
4511
查看次数

包含值的 Firebase 查询

我正在尝试查询 firebase 上的数据以查找其值包含字符串一部分的子项。因此,假设值是“apple”,如果我搜索“app”,我会返回该记录。我意识到有人问过这个问题,但我读过的答案都表明 firebase 将集成此功能......几乎 3 年后,我似乎找不到任何东西。

firebase swift firebase-realtime-database

3
推荐指数
1
解决办法
2429
查看次数

如何根据多个等于查询Firebase

我有以下 firebase 结构。由此我需要根据查询获取数据where Dstatus=ok and Drmoble=mobile no

在此输入图像描述

到目前为止,我已经写了这个仅适用于单个值。我如何将两者结合起来

 mReferenceBooks.orderByChild("Drmoble").equalTo(mobile_no).addValueEventListener(new ValueEventListener() {

 @Override
 public void onDataChange(DataSnapshot dataSnapshot) {
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-realtime-database

3
推荐指数
1
解决办法
4261
查看次数

在Firebase中检索嵌套数据-Android

我刚刚进入了Firebase和android的世界。我遵循在线教程来设置和获取非嵌套数据,并将其显示在列表视图中,如下所示:

之前的数据:

数据之前

    mListView = (ListView) findViewById(R.id.ListView) ;
    final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mStudents);
    mListView.setAdapter(arrayAdapter);
    FirebaseDatabase database = FirebaseDatabase.getInstance();
    myRef = database.getReference().child("Student1");
    myRef.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            String value = dataSnapshot.getValue(String.class);
            String key = dataSnapshot.getKey();
            String totl = key + ": " + value;
            mStudents.add(totl);
            arrayAdapter.notifyDataSetChanged();
        }
    });
Run Code Online (Sandbox Code Playgroud)

我向数据库添加了带有子字段的成绩字段。我想显示整个学生1数据以及成绩。当我尝试运行上面的代码时。我收到以下错误。

数据后:

数据后

FATAL EXCEPTION: main
              Process: com.adcpnmd.mystudents, PID: 3524
              com.google.firebase.database.DatabaseException: Failed to convert value of type java.util.HashMap to String
                  at com.google.android.gms.internal.zzbqi.zzaD(Unknown Source)
                  at com.google.android.gms.internal.zzbqi.zzb(Unknown Source) …
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-realtime-database

1
推荐指数
1
解决办法
5121
查看次数

使用queryOrderedByChild获取最高得分列表时,如何以正确的顺序显示并列得分?

我的应用程序有一个最高得分表,该表使用.queryOrdered(byChild:“ userHighScore”)和.queryLimited(toLast:100)来获得最高100分:

func getTopScores() {
    var scores = [String]()

    self.reference
        .child("users")
        .queryOrdered(byChild: "userHighScore")
        .queryLimited(toLast: 100)
        .observeSingleEvent(of: .value, with: { (snapshot) in

            for child in snapshot.children.reversed() {

                if let dataSnapshot = child as? DataSnapshot, let user = dataSnapshot.value as? [String:AnyObject] {

                    if let userHighScore = user["userHighScore"] as? Int {
                        var stringToAppend = "\(scores.count+1). "


                        if let userName = user["userName"] as? String {
                            stringToAppend += " \(userName)   •  \(userHighScore)"
                        }

                        scores.append(stringToAppend)
                    }
                }
            }
        })
    }
Run Code Online (Sandbox Code Playgroud)

问题是当有平局得分时。

理想情况下,第一个获得该分数的用户应高于表中具有相同分数的其他用户(而获得该分数的最新用户将是拥有相同分数的用户中最低的)。

但是,该表以与Firebase实时数据库中出现的相同的随机顺序显示得分相同的得分。

有没有办法按时间顺序排序并列分数?

我已经为此花了好几个小时。在此先感谢您的帮助!

firebase swift

1
推荐指数
1
解决办法
84
查看次数