마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 파이어베이스 업데이트 질문드립니다

0 추천

파이어베이스 값을 업데이트 하고싶은데 어떻게보면 바꿔넣는걸 생각하고 잇는데 

파이어베이스에 있는값 + 추가한값 = x 

x로 파이어베이스에 최신화 가 목표입니다 

파이어베이스에 있는값을 a 텍스트에 받아오고 b 텍스트엔 추가한값을 넣어서 

a + b  = x 

x 로 최신화 인데 생각해보니 그 x를 넣으려는데 파이어베이스 디렉토리 내에 키? 폴더? 를 모르면 그 하위에도 못넣더라고요 혹시 어떻게 넣어야되는지 지도해주실분...

 

 

userPoint를 최신화 하고싶은데 

코드는 대충 이런식으로 짯습니다

firebaseDatabase.getReference().child("User1").addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        userdetas.clear();
        User_model userdeta = null;
        for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
            userdeta = snapshot.getValue(User_model.class);
            userdetas.add(userdeta);
        }
        user_pointhap.setText(userdeta.getUserPoint());

    }

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


btn_charge.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        String str1 = edit_charge.getText().toString() ;
        String str2 = user_pointhap.getText().toString();
        int num1 = Integer.parseInt(str1);
        int num2 = Integer.parseInt(str2);
        int hap=num1+num2;
        String strhap = Integer.toString(hap);
        user_pointhap.setText(strhap);

        User_model user_model = new User_model();
        user_model.setUserPoint(user_pointhap.getText().toString());
    }
});

 

 

 

 

공과근성 (6,020 포인트) 님이 2019년 5월 10일 질문

1개의 답변

0 추천
User1 이라는게 혹시 가입유저들의 정보를 저장하는 노드라면, 구현을 잘못하신?(잘못됬다기 보단 비효율적) 부분이 있네요. 유저 정보들을 구분하는 저 -LeVv...이런 키값들은 setValue할때 push()메소드를 호출해서 그런것인데요. 저런식으로 하시기 보단 가입 인증 처리할때 반환되는 uid로 구분하시는게 좋습니다. User1 - uid - 이메일/아이디/비번/폰/포인트정보 형태로 저장이 되겠죠. 가이드에 보면 반환되는 uid를 sharedpreference에 저장해서 모든 뷰 컴포넌트에서 그값을 가져다 쓰게 하고있거든요. 그렇게 하시면 앱을 사용하는 유저들의 정보는 저장된 uid값으로 접근하게 되니 사용자간의 정보값 get set이 수월하지요.
익명사용자 님이 2019년 5월 10일 답변
흠 ... push()메소드 사용해서 한것도 맞고 짤떄는 저런식으로 원햇는데 뺴오는걸 미처생각못해서 넵 uid 따로 공부해서 해보겟습니다 친절한 답변 감사합니다
...