Невозможно увидеть данные, извлеченные из базы данных в текстовом представлении - PullRequest
0 голосов
/ 02 октября 2019

Это своего рода функция чата в приложении, когда пользователи с разными идентификаторами отправляют сообщения, и она сохраняется в базе данных в режиме реального времени.

Я сохранил данные в базе данных реального времени, но когда я пытаюсьполучить и отобразить его не отображается. Я не уверен, что данные сначала извлекаются.

Я попытался сохранить данные через приложение, и они сохраняются в базе данных Firebase.

Планировка:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".chatroom">

    <Button
        android:id="@+id/send_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="9dp"
        android:layout_marginLeft="9dp"
        android:layout_marginEnd="5dp"
        android:layout_marginRight="5dp"
        android:layout_marginBottom="8dp"
        android:text="SEND"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/text_send" />

    <EditText
        android:id="@+id/text_send"
        android:layout_width="286dp"
        android:layout_height="49dp"
        android:layout_marginEnd="9dp"
        android:layout_marginRight="9dp"
        android:layout_marginBottom="8dp"
        android:ems="10"
        android:inputType="textPersonName"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/send_button"
        app:layout_constraintStart_toStartOf="parent" />

    <TextView
        android:id="@+id/msgview"
        android:layout_width="390dp"
        android:layout_height="699dp"
        android:layout_marginEnd="3dp"
        android:layout_marginRight="3dp"
        android:text="look here"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

Код:

package com.example.sdl;

import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import com.google.android.gms.tasks.Task;
import com.google.firebase.database.ChildEventListener;
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 java.util.Iterator;

public class chatroom extends AppCompatActivity {

    FirebaseDatabase database=FirebaseDatabase.getInstance();
    Button send_button;
        EditText text_send;
        TextView msgview;
        String ctext_send,cmsgview;
    String sdomain,ssubdomain,sprofession,sbranch,srollno,spass;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_chatroom);

        SharedPreferences sp = getApplication().getSharedPreferences("user", Context.MODE_PRIVATE);
        sdomain=sp.getString("domain"," xyz");
        ssubdomain=sp.getString("subdomain","xyz ");
        sprofession=sp.getString("profession"," xyz");
        sbranch=sp.getString("branch","xyz ");
        srollno=sp.getString("rollno","xyz ");
        spass=sp.getString("pass"," xyz");

            send_button =(Button)   findViewById(R.id.send_button);
            send_button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    openchat();
                }
            });
        msgview=(TextView) findViewById(R.id.msgview);
        text_send=(EditText) findViewById(R.id.text_send);


        DatabaseReference ref = database.getReference().child(sdomain).child(ssubdomain).child(sbranch).child("chat");
        ref.addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(@NonNull DataSnapshot dataSnapshot, String s) {


                    append_chat_conv(dataSnapshot);
            }

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

                append_chat_conv(dataSnapshot);
            }

            @Override
            public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {

            }

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

            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });
    }

            private  String chatmsg;

        private  void append_chat_conv(DataSnapshot dataSnapshot){

            Iterator i=dataSnapshot.getChildren().iterator();
            while (i.hasNext()){
                chatmsg= (String) ((DataSnapshot)i.next()).getValue();
                msgview.append(chatmsg);
            }
        }

    public void openchat(){



        ctext_send=text_send.getText().toString();



        Task<Void> ref=database.getReference().child(sdomain).child(ssubdomain).child(sprofession).child(sbranch).child("chat").push().child(srollno).setValue(ctext_send);

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...