2016-07-09 3 views
0

Firebase를 시작하려고합니다.이 간단한 firebase 튜토리얼 (https://www.youtube.com/watch?v=B1rlT5KQ0yE)을 따랐습니다.firebase 데이터베이스를 실시간으로 업데이트하는 방법은 무엇입니까?

간단한 활동을 만들었습니다. "Sunny"버튼을 누르면 Sunny Base가 Firebase 데이터베이스로 전송되어 맑은 날씨로 표시됩니다. 그러면 Firebase 데이터베이스가 내 응용 프로그램으로 다시 전송되고 햇볕이 잘 드는 텍스트보기가 채워집니다. 그래서 괜찮습니다.

하지만 firebase 데이터베이스를 검사 할 때 아무 것도 추가하지 않았습니다.

그리고 Firebase 데이터베이스에 무언가를 쓸 때 실시간으로 textview가 변경되지 않습니다.

다음은 활동 코드입니다.

그냥두고 중포 기지 실시간으로 데이터베이스를 사용하기 위해
public class MainActivity extends AppCompatActivity 
{ 
    private TextView myTextView; 
    private Button sunnyButton; 
    private Button foggyButton; 
    private Firebase mRef; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    @Override 
    protected void onStart() 
    { 
     super.onStart(); 
     myTextView = (TextView) findViewById(R.id.textViewCondition); 
     sunnyButton = (Button) findViewById(R.id.sunnyButton); 
     foggyButton = (Button) findViewById(R.id.FoggyButton); 

     //Firebase 
     mRef = new Firebase("https://example-e04be.firebaseio.com/weather"); 

     mRef.addValueEventListener(new ValueEventListener() 
     { 
      //onDatachange will get fired everytime there is a change in your firebase database. CHANCE IN YOUR DATABASE!!! 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) 
      { 
       String text = dataSnapshot.getValue(String.class); 
       myTextView.setText(text); 
      } 

      @Override 
      public void onCancelled(FirebaseError firebaseError) { 

      } 
     }); 

     sunnyButton.setOnClickListener(new View.OnClickListener() 
     { 
      @Override 
      public void onClick(View v) 
      { 
       mRef.setValue("sunny");//So "Foggy" string will be sent to our DB. Which will update our DB, then in mRef.addValue...will be called and our textfield will be called. Like a small loop. 
      } 
     }); 
    } 
+0

firebase 데이터베이스에서 권한 문제가있을 수 있습니다. 수정 해 봤어? 아니, 당신이 이것을 선호 할 수 있다면 [http://stackoverflow.com/a/38199481/5610686](http://stackoverflow.com/a/38199481/5610686). 여기에서 권한 부분 만보기. –

+0

@DevQualwebs 실시간 변경을 수행하고 데이터베이스에 저장하려면이를 수정해야합니까? 내가 제시 한 링크에서 답변을 읽었지만 firebase 대시 보드의 "규칙"섹션에서 무엇을 변경해야하는지 잘 모르겠습니다. – TheQ

+0

예. 어떤 종류의 firebase 인증도 수행하지 않으면 firebase 데이터베이스의 규칙을 변경해야합니다. 이것도 참조해야합니다 [https://firebase.google.com/docs/database/security/](https://firebase.google.com/docs/database/security/). 학습 목적으로 이전 링크에 표시된 내용을 public으로 설정할 수 있습니다. –

답변

2

... 그냥두고 저장을 위해

{ 
    "rules": { 
    ".read": true, 
    ".write": true 
    } 
} 

...

service firebase.storage { 
    match /b/project-[your_project_number].appspot.com/o { 
    match /{allPaths=**} { 
     allow read, write; 
    } 
    } 
} 

그것은 당신이 공개적으로 사용할 수있는 정의합니다 firebase 끝에서 어떤 verifaction도 필요가 없습니다.

+0

@Dev_Qualwebs 안녕하세요. 빠른 질문입니다. 내 애플 리케이션에 대한 내 firebase 기본 페이지에서 "데이터베이스"섹션을 참조하십시오. 및 '저장 용량'섹션. 언제 그리고 어떻게 스토리지를 사용할 것인가. 내 사용자의 문자열을 저장하려면 기술적으로 "데이터베이스"섹션에 저장합니까? 아니면 내 Firebase의 "스토리지"섹션으로 이동해야합니까? 나는 당신이 그것을 명확히 할 수 있기를 바란다. – TheQ

관련 문제