inflearn logo
강의

Khóa học

Chia sẻ kiến thức

[Trình độ sơ trung cấp] Tạo ứng dụng hẹn hò Android (Android Kotlin)

Lưu trữ trong cơ sở dữ liệu thông tin người dùng

3강 firebase 쓰기가 동작하질않아요

186

ssh7423

3 câu hỏi đã được viết

0

3강 첫번째 유저 데이터베이스 쓰기

강의보고 firebase 회원가입해보고있는데

email, pw 는 등록이 되나

realtime database에는 데이터가 들어가지 않습니다

 

package com.example.test_1.auth

import android.content.Intent
import android.os.Bundle
import android.util.Log
import android.widget.Button
import androidx.appcompat.app.AppCompatActivity
import com.example.test_1.MainActivity
import com.example.test_1.R
import com.example.test_1.utils.FirebaseRef
import com.google.android.material.textfield.TextInputEditText
import com.google.firebase.FirebaseApp
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.auth.ktx.auth
import com.google.firebase.database.ktx.database
import com.google.firebase.ktx.Firebase

class JoinActivity: AppCompatActivity()  {
    private val TAG = "JoinActivity"
    private lateinit var auth : FirebaseAuth //추후 초기화해서 사용할 변수이다

    private var nickname = ""
    private var gender = ""
    private var city = ""
    private var age = ""
    private var uid = ""


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_join)
        //FirebaseApp.initializeApp(this);
        auth = Firebase.auth

        var joinButton = findViewById<Button>(R.id.joinBtn)
        joinButton.setOnClickListener {
            var email = findViewById<TextInputEditText>(R.id.join_email)
            var pwd = findViewById<TextInputEditText>(R.id.join_pwdArea)
            gender = findViewById<TextInputEditText>(R.id.join_gender).text.toString()
            city = findViewById<TextInputEditText>(R.id.join_area).text.toString()
            age = findViewById<TextInputEditText>(R.id.join_age).text.toString()
            nickname = findViewById<TextInputEditText>(R.id.join_nickname).text.toString()

//            Log.d(TAG, email.text.toString())
//            Log.d(TAG, pwd.text.toString())


            auth.createUserWithEmailAndPassword(email.text.toString(),pwd.text.toString())
                .addOnCompleteListener(this) { task ->
                    if (task.isSuccessful) {
                        // Sign in success, update UI with the signed-in user's information
                        Log.d(TAG, "createUserWithEmail:success")
                        var user = auth.currentUser
                        uid = user?.uid.toString() // user가 null 이 아니면 toString

                        val database = Firebase.database
                        val myRef = database.getReference("message")
                        myRef.setValue("Hello, World!")
                        Log.d(TAG, "push database :success")
                        myRef.setValue("11111111111")
                        myRef.setValue("2222222222")
                        //firebase 접속관련 util로 패키징
                        //FirebaseRef.userinfo.setValue("userinfo","hello")

//                        val udm = UserDataModel(uid,
//                        nickname,
//                        age,
//                        gender,
//                        city)
//                        FirebaseRef.userInfoRef.child(uid).setValue(udm)
                        //성공시 메인으로 이동
                   //     var intent = Intent(this, MainActivity::class.java)
                    //    startActivity(intent)

                    } else {
                        // If sign in fails, display a message to the user.
                        Log.w(TAG, "createUserWithEmail:failure", task.exception)
                    }
                }
        }
    }
}

 

android kotlin firebase

Câu trả lời 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. ssh7423님의 질문에 대해 비슷한 상황을 겪은 다른 수강생의 질의응답을 찾아보았습니다.

질문하신 내용은 Firebase Realtime Database에 데이터가 기록되지 않는 문제와 관련이 있습니다. 코드를 살펴보니, 실제로 유저 정보를 데이터베이스에 기록하는 부분(FirebaseRef.userInfoRef.child(uid).setValue(udm))이 주석 처리되어 있네요. 이 부분을 활성화 시켜주는 것이 필요해보입니다. 또한, myRef.setValue("Hello, World!")를 사용하여 동일한 참조에 다수의 setValue를 사용하면 마지막에 설정된 값으로 덮어씌워지기 때문에 유의해야 합니다.

비슷한 상황을 겪은 다른 수강생의 문제 해결 과정을 참조하는 것도 도움이 될 수 있습니다. 주요 포인트는 다음과 같습니다:
- 데이터베이스 경로 설정이 올바른지 확인합니다.
- setValue 메소드를 사용할 때 올바른 객체 또는 값을 전달하고 있는지 확인합니다.
- addOnCompleteListener 내부에서 데이터베이스에 값을 성공적으로 기록했는지 확인하는 로그 또는 디버깅 방법을 사용합니다.

유사한 문제를 해결한 질문 링크에서 더 상세한 해결책을 찾으실 수도 있습니다. 해당 링크는 회원가입 과정에서 Firebase Realtime Database에 데이터를 기록하는 데 문제가 있었던 경우에 대한 해결 과정을 담고 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

0

ssh7423

addOnCompleteListener 에 logcat을 추가했는데 동작하지 않습니다...

0

bokchi

전체 코드를 깃허브나 구글 드라이브를 통해 공유해주시겠어요?

CardStackView 라이브러리 추가에 실패합니다.

0

99

1

CardStackView

0

127

2

CardStackView 오류 정상적으로 구현이 되지 않습니다.

0

201

3

최신화 된 강의 요청합니다

0

163

2

auth.currentUser?.uid.toString() 가 null 이 나와요

0

194

1

혹시.. 지금 최신 환경 상, 강의 내용대로 진행이 안 되는 걸까요?

0

243

1

현시점에서 알려주신 방법대로 서버키를 받는것이 안되는것같습니다

0

261

2

강사님 실시간으로 혹시 문의하는 방법은 없을까요??

0

185

1

해당 강의 들으시는 분들 중에 교육관련해서 서로 얘기 나누실 분 있으신가요??

0

158

1

강사님 FCM 단계 진행하면서 오류들이 너무 많이 발생합니다...

0

207

1

FCM 토큰 문의

0

215

1

강사님 FCM 단계에서 전체적으로 앱 문제가 발생해서 혹시 원격으로 조치 해주실 수 있나요?

0

233

1

토큰 정보 유저정보에 저장하기 강의 4분 12초 코드를 동일하게 입력했는데 적용이 잘 안되는 것 같아요.

0

399

3

토큰 받아와서 메세지 보내기 강의 2분 20초 로그캣 확인 하는 창이 다르고 토큰 값이 안떠요.

0

221

1

FCM 강의, firebaseservice 클래스 내 오류코드 해결방안이 궁금합니다.

0

275

2

FCM 강의 중간부터 코드 오류가 발생했는지 앱에서 회원가입을 해도 파이어베이스 Authentication에는 회원등록이 해도 화면이 넘어가지 않고 데이터도 저장이 안 되네요.

0

296

3

섹션 1 CardStackView의 Implement members 질문있습니다.

0

229

1

수업자료 다운로드 후 알집풀기에서 오류가 발생합니다.

0

467

3

Retrofit 사용해보기 강의 2:20 쯤에 작성된 복사된 코드는 어디서 받나요?

0

234

2

강의 FCM 소개 1:56에 디펜던시 추가하는게 최신버전으로 바뀐 듯합니다.

0

277

1

매칭이 되면 알람 띄우기 강의에서 오류문구 해결방안이 궁금합니다.

0

358

3

소스코드 다운이 불가능합니다..

0

146

1

나와 다른 성별의 유저 불러오기 강의에서 에뮬레이터에서 앱이 켜졌다가 바로 꺼져요.

0

461

11

이미지 저장하기 강의에서 회원가입 후 이미지가 파이어 베이스에 저장되지 않습니다.

0

216

2