如何将Firebase查询结果转换为字符串并在文本视图中进行设置?

时间:2020-01-12 17:46:12

标签: android firebase firebase-realtime-database

我正在通过Firebase查询以提取数据并将其设置为文本视图,但是结果不同。

    databaseReference = FirebaseDatabase.getInstance().getReference("tables");
    query = databaseReference.child("restaurantID").orderByChild("tableID").equalTo(tableID);
    tableDatabaseReference = FirebaseDatabase.getInstance().getReference("tables");
    tableNameQuery = tableDatabaseReference.child("tableName").orderByChild("tableID").equalTo(tableID);
    tableNameTextView.setText(tableNameQuery.toString());

它没有显示任何错误,但文本视图显示为com.google.firebase.database.Query@c1d4fdd

请帮助。

1 个答案:

答案 0 :(得分:0)

您实际上并不是在对数据库执行查询。您的所有代码所要做的就是获取tableDatabaseReference.child(...).orderByChild(...).equalTo(...)返回的Query对象并将该对象转换为String。您将看到Java对象默认表示为String。

您应该遵循doucmentation for querying Realtime Database才能获取实际数据。您将需要在查询上附加一个侦听器以从中获取数据。例如,从文档中:

    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {
            // TODO: handle the post
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        // Getting Post failed, log a message
        Log.w(TAG, "loadPost:onCancelled", databaseError.toException());
        // ...
    } }); ```