inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Firebase 서버를 통한 Android앱 HowlTalk 만들기

메세지 보내기

Comment가 안 만들어집니다.

256

임명준

작성한 질문수 1

0

```package com.example.jun.myeongjuntalk.chat;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import com.example.jun.myeongjuntalk.R;

import com.example.jun.myeongjuntalk.model.ChatModel;

import com.google.firebase.auth.FirebaseAuth;

import com.google.firebase.database.DataSnapshot;

import com.google.firebase.database.DatabaseError;

import com.google.firebase.database.FirebaseDatabase;

import com.google.firebase.database.ValueEventListener;

public class MessageActivity extends AppCompatActivity {

private String destinationUid;

private EditText editText;

private String uid,chatRoomUid;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_message);

uid = FirebaseAuth.getInstance().getCurrentUser().getUid();//채팅을 요구한 아이디, 즉 사용자 본인 단말기 아이디

destinationUid = getIntent().getStringExtra("destinationUid");//채팅을 당하는 아이디

Button button = (Button) findViewById(R.id.meesage_btn);

editText = (EditText)findViewById(R.id.message_edt);

button.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

ChatModel chatModel = new ChatModel();

chatModel.users.put("uid",true);

chatModel.users.put("destinationUid",true);

if(chatRoomUid == null){

Log.d(null,"되냐");

FirebaseDatabase.getInstance().getReference().child("chattingRoom").push().setValue(chatModel);

}

else{

Log.d(null,"되냐2");

ChatModel.Comment comment = new ChatModel.Comment();

comment.uid = uid;

comment.message = editText.getText().toString();

FirebaseDatabase.getInstance().getReference().child("chattingRoom").child(chatRoomUid).child("comments").push().setValue(comment);

}

}

});

checkRoom();

}

void checkRoom(){

Log.d(null,"checkRoom"); //중복

FirebaseDatabase.getInstance().getReference().child("chattingRoom").orderByChild("users/"+uid).equalTo(true).addListenerForSingleValueEvent(new ValueEventListener() {

@Override

public void onDataChange(DataSnapshot dataSnapshot) {

for(DataSnapshot item : dataSnapshot.getChildren()){

ChatModel chatModel = item.getValue(ChatModel.class); //채팅방 테이블에 사용자와 대화상대의 uid를 가져옴

if(chatModel.users.containsKey(destinationUid)){

chatRoomUid = item.getKey();

}

}

}

@Override

public void onCancelled(DatabaseError databaseError) {

}

});

}

}

이 코드로 했을 때 , comment가 안 만들어집니다. 제가 볼 때는

elss 문이 실행이 안되는 거 같습니다. chattingRoomId값을 가져와도 자꾸 널 값으로 되서 자꾸 if문만 실행됩니다.

firebase android

답변 1

0

하울

제가 이렇게 작성하시면 확인을 할 수가 없습니다. 유튜브에 원본소스 링크가 있으니 원본 소스와 비교를 해보시면 좋을 뜻 싶습니다!

6강에 비디오가 이상해요

0

20

1

진입 여부 판단 기준 질문

0

64

3

피그마 first draft 기능 질문

0

42

3

더백님 감사합니다

1

34

1

upup 질문

0

51

2

data.ai 필터링 검색이 안됩니다!

0

41

1

앱 리텐션에 대한 질문

0

43

2

저예산+최대지출 캠페인 유지시간

0

58

2

39. Main화면 추가 UI 에서 자료는 어디서 받나요??

0

34

1

타입스크립트

0

44

1

미션 마감일시를 좀 늘려주세요

0

44

1

개인브랜딩 사이트 만들기가 마감일시가 있었네요.

0

37

1

최종 과제 제출

0

81

3

주사위앱 소개 및 레이아웃 설정 문제

0

57

2

파이어베이스 문의

0

39

2

다작을 위한 비공개 테스트와 계정에 대해서 궁금합니다!

0

102

2

강의하시는 파이어베이스 버젼이 얼마인지요 ..

0

304

0

강의 잘 듣고 있습니다. 그런데 getString이....

0

238

0

ChatModel에서 comment 해시맵에서 키로 String을 넣으신 이유가 따로 있나요?? comment함수만으로도 될 거 같은데

0

174

0

1강부터 매개변수 서버에서 받아오는거 막혀서 고생했는데

0

277

0

파이어베이스 임포트 할때 저는 자동으로 임포트가 되지 않습니다.

0

269

1

급히 질문드립니다ㅠㅠ

0

371

1

getDownloadUrl

0

820

8

푸시 메시지 추가후 에러 문제

0

329

2