#안드로이드스튜디오

cosmicDustcosmicDust· 3년

질문Firebase 데이터베이스에 관련된 모든 작업이 작동하지 않습니다.

안녕하세요. 백엔드 쪽은 공부해본적이 없어서 파이어베이스를 이용해 어플리케이션을 만들어 보는 중입니다.   Auth 부분까지 잘 작동하는 것을 확인한 뒤, 공식 Documentation을 따라 실시간데이터베이스를 연결하고 코드를 짜봤는데요, 오류는 전혀 발생하지 않지만 데이터베이스에 제가 의도했던 어떠한 작업도 진행되지 않았습니다. 실시간데이터베이스 뿐만 아니라 파이어스토어도 마찬가지였습니다.   제 코드가 잘못된건가 싶어 Documentation에 있는 코드를 그대로 넣어봤으나 이 또한 작동하지 않았고 커넥트 및 디펜던스도 여러번 확인했습니다.   도대체 무엇이 문제일까요...? 아래는 파이어스토어 documentation에 있는 코드를 그대로 가져와 작성했던 코드입니다. class MainActivity : AppCompatActivity() { //파이어베이스 파이어스토어 초기화 val db = Firebase.firestore val user = hashMapOf( "first" to "Ada", "last" to "Lovelace", "born" to 1815 ) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) db.collection("users") .add(user) .addOnSuccessListener { documentReference -> Log.d(TAG, "DocumentSnapshot added with ID: ${documentReference.id}") } .addOnFailureListener { e -> Log.w(TAG, "Error adding document", e) } }  
1.3K
1
1
0
무린
무린·2022-06-11
먼저 로그 콘솔에 에러가 출력된 것이 있는지 확인을 해보시기 바랍니다. 공식 문서대로 실행했는데 에러가 없다면 일일이 로그를 추가하여 확인해보셔야 할 것 같습니다. class MainActivity : AppCompatActivity() { val db = Firebase.firestore val user = hash...
yj23124yj23124· 3년

질문안드로이드 에뮬레이터에 따라 오류가 발생합니다

상대적으로 예전 버전인 Nexus 5X API 27로 할 때는 viewpager의 imageView가 잘 나오는데, Pixel 4 API 31 버전 애뮬레이터로 실행했을 땐 다른 건 잘 나오는데 viewpager의 imageView가 안나옵니다.. 아래의 내용은 Logcat에서 Error인 부분을 구글링해봐도 무슨 말인지 모르겠습니다ㅠㅠ 혹시 짐작 가시는 부분이 있을까요??   2022-04-13 13:55:24.260 409-409/? E/BpTransactionCompletedListener: Failed to transact (-32) 2022-04-13 13:55:25.404 448-466/? E/installd: Couldn't opendir /data/app/vmdl467636503.tmp: No such file or directory 2022-04-13 13:55:25.404 448-466/? E/installd: Failed to delete /data/app/vmdl467636503.tmp: No such file or directory 2022-04-13 13:55:25.985 1361-1361/? E/HwDetectorWithState: a: 3 2022-04-13 13:55:26.003 571-625/? E/VerityUtils: Failed to measure fs-verity, errno 1: /data/app/~~YZS7Rea2DoNg_giQyyGNkg==/com.instagram-oNZdfjGSAub8V764Q231DA==/base.apk 2022-04-13 13:55:26.141 571-625/? E/VerityUtils: Failed to measure fs-verity, errno 1: /data/app/~~YZS7Rea2DoNg_giQyyGNkg==/com.instagram-oNZdfjGSAub8V764Q231DA==/base.apk 2022-04-13 13:55:27.801 409-431/? E/HWComposer: getSupportedContentTypes: getSupportedContentTypes failed for display 4619827259835644672: Unsupported (8) 2022-04-13 13:56:47.808 357-357/? E/[email protected]: Failed to getEnergyData 2022-04-13 13:57:13.010 918-918/? E/MmTelFeatureConn [0]: ImsRegistrationCallbackAdapter: ImsRegistration is null  
5.3K
2
1
0
무린
무린·2022-04-23
안드로이드 SDK 버전에 따라 이미지를 가져오는 방식이 다를 수 있습니다. 예를 들면 Bitmap 이미지의 경우 아래와 같이 구분이 필요합니다. fun Uri.getCapturedImage(context: Context): Bitmap? { if (Build.VERSION.SDK_INT >= Build.VERSION_CODE...
밈이밈이· 4년

질문파이어베이스에서 읽어오는 데이터 값이 저장이 되지 않습니다.

class LogInActivity : AppCompatActivity() { var userId = "" var pcType = "" var nickName = "" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_log_in) val db: DatabaseReference = Firebase.database.reference // 이미 로그인이 되어있는 경우 UserApiClient.instance.accessTokenInfo { tokenInfo, error -> if (error != null) { Log.e("Token", "토큰 정보 보기 실패") } else if (tokenInfo != null) { Log.d("Token", "토큰 정보 보기 성공") UserApiClient.instance.me { user, error -> if (error != null) { Log.e("TAG", "사용자 정보 요청 실패", error) } else if (user != null) { val id = user.id.toString() setId(id) db.child("users").child(id).child("type").get().addOnSuccessListener { val dbType = it.value.toString() Log.i("info t", dbType.toString()) setType(dbType) }.addOnFailureListener { Log.e("firebase", "Error getting data", it) } db.child("users").child(id).child("nickname").get().addOnSuccessListener { val nick = it.value.toString() Log.i("info nick", nick) nickName = nick }.addOnFailureListener { Log.e("firebase", "Error getting data", it) } /*************************/ private fun setId(id : String) { userId = id } private fun setType(t : String) { pcType = t } 데이터 저장에 필요 변수는 전역으로 설정해주었습니다. db.child("users").child(id.toString()).child("type").get().addOnSuccessListener { 이 부분의 중괄호 내에서 dbType 변수에 데이터가 잘 저장된 걸 확인했습니다. 또한 전역변수로 선언해놓은 pcType에도 저장이 되어있습니다. 하지만 위 코드의 중괄호를 나가게 되면 pcType 변수에 다시 null 값이 들어 가 있습니다.   nickName 처럼 set 메소드를 안 쓰고 직접 저장을 해도 똑같이 중괄호를 나가면 다시 null 값으로 돌아갑니다. 이와 마찬가지로 UserApiClient.instance.me에서 저장되는 id값도 중괄호를 벗어나면 null 값으로 됩니다.. 며칠 전만 해도 문제 없이 잘 저장되었던 걸로 알고 있었는데 갑자기 변수에 값이 저장이 안되니 막막합니다..   제가 코틀린을 잘못 이해하고 사용하고 있는 것인가요? 파이어베이스에서 가져온 데이터 값을 어떻게 해야 변수에 저장할 수 있는지 궁금합니다. 현재 가지고 있는 코틀린 책도 없어서 구글링으로만 코드 작성 중이라 모르는 게 많습니다 ㅠㅠ..
2.9K
3
0
knee
knee·2023-12-11
정말 감사합니다! 이 글 덕분에문제를 해결할 수 있었어요
무린
무린·2021-05-06
addOnSuccessListener는 비동기로 실행됩니다. 즉, 언제 실행이 완료될 지 알 수 없는 코드입니다. 만약 중괄호 밖의 코드를 실행되기 전에 다행히 비동기 코드가 실행되었다면 정상적으로 동작하겠지만, 중괄호 밖의 코드가 실행될 때 아직 비동기 코드가 실행되어있지 않으면 값을 가져오지 못해 오류가 발생할 수 있습니다. 다시 말해,...
배고파배고파· 5년

질문안녕하세요 앱을 만들어볼려고 안드로이드스튜디오와 플러터를 설치했는데 이부분에서 자꾸 막히니까 시작을 할수가없네요...도와주세요ㅠㅠㅠ

카테고리는 어디로해야할지 몰라 여기에 올립니다..! 안드로이드스튜디오 버전을 낮은걸로 설치해도 되질않아서 현버전으로 다시설치했지만 여전히 안되네요... 다른방법이 있는지..제가 뭘잘못했는지 알수있을까요ㅠㅠ
1.6K
1
0
kimho
kimho·2020-09-23
flutter에 안드로이드 SDK 경로를 지정해주셔야 합니다. 명령 프롬프트에서 아래와 같은 명령으로 지정할 수 있습니다. C:\> flutter config --android-sdk [안드로이드 SDK 설치경로]