2014-03-26 3 views
0

학생용 프로젝트에서 간단한 데이터베이스를 사용하기 위해 Firebase를 배우려고합니다. 여전히 소비 시간의 시간과는 알아낼 그나마 내가 중포 기지에서 간단한 예제를 사용했다Firebase : "생성자 Message (String, String)가 정의되지 않았습니다.

:. 목록 데이터를 작성하고 목록 데이터 읽기 :

https://www.firebase.com/docs/managing-lists.html 그래서 필자는, 예를 붙여 넣은 코드를 수정을 내 자신의 데이터베이스에 맞게.하지만 이클립스는이 라인의 생성자에 불평을 계속 : newPushRef.setValue (new Message ("wilma", "Hello")); 오류 : 생성자 Message (String, String)는 정의되지 않았다. 그것 "android.os.Message;"가져 오기를 원합니다.해야만하는지 잘 모릅니다. 그러나 아무 것도 해결하지 못하는 것 같습니다. 제안은 생성자가 비어 있어야한다고 말합니다. 여기에 무엇이 누락 되었습니까?

"빌드 경로"를 클릭하여 최신 Java SDK를 libs 폴더로 가져 왔습니다. 단순 로그인 라이브러리와 동일합니다.

저는 자바를 처음 접했습니다. 겸손 해주십시오.

편집 : "System.out.println (m.getUser_id());"

package com.mah.phli_xjobb_textpushmess_25mars; 

import java.text.MessageFormat; 
import java.util.HashMap; 
import java.util.Map; 

import com.firebase.client.ChildEventListener; 
import com.firebase.client.DataSnapshot; 
import com.firebase.client.Firebase; 
import com.firebase.client.FirebaseError; 
import com.firebase.client.ValueEventListener; 
import com.firebase.client.Query; 
import com.firebase.simplelogin.SimpleLogin; 


import android.support.v7.app.ActionBarActivity; 
import android.support.v7.app.ActionBar; 
import android.support.v4.app.Fragment; 
import android.os.Bundle; 
import android.os.Message; 
import android.util.Log; 
import android.view.LayoutInflater; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.ViewGroup; 
import android.os.Build; 

public class StartActivity extends ActionBarActivity { 

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



    //---FIREBASE--// 
    // First we get a reference to the location of the user's name data: 
    Firebase listRef = new Firebase("https://listtest.firebaseio.com/message_list"); 

    // Generate a reference to a new location with push() 
    Firebase newPushRef = listRef.push(); 

    // Set some data to the generated location 
    newPushRef.setValue(new Message("wilma", "Hello")); 

    // Get the name generated by push 
    String pushedName = newPushRef.getName(); 



    listRef.addChildEventListener(new ChildEventListener() { 

     @Override 
     public void onChildRemoved(DataSnapshot arg0) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void onChildMoved(DataSnapshot arg0, String arg1) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void onChildChanged(DataSnapshot arg0, String arg1) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void onChildAdded(DataSnapshot snapshot, String previousChildName) { 
      Message m = snapshot.getValue(Message.class); 
      System.out.println(m.getUser_id()); 
     } 

     @Override 
     public void onCancelled(FirebaseError arg0) { 
      // TODO Auto-generated method stub 

     } 
    }); 





    //---END FIREBASE----// 



    if (savedInstanceState == null) { 
     getSupportFragmentManager().beginTransaction() 
       .add(R.id.container, new PlaceholderFragment()).commit(); 
    } 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.start, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 
    if (id == R.id.action_settings) { 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

/** 
* A placeholder fragment containing a simple view. 
*/ 
public static class PlaceholderFragment extends Fragment { 

    public PlaceholderFragment() { 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragment_start, 
       container, false); 
     return rootView; 
    } 
} 

}//End class 
+0

이것은 Eclipse 구성 문제 일 가능성이 높습니다. 태그를 추가했습니다. 누군가가 도움이되기를 바랍니다! :) – Kato

답변

2

워드 프로세서에서 예제 코드의 Message 클래스는 실제로 함께 제공되는거야 진짜 클래스되지 않습니다 : "방법 getUser_id은() 유형의 메시지에 대한 정의는"

이 내 startActivity를하다 SDK는 데모 용으로 제공됩니다. 그것은 당신이 구현하고 Firebase에 저장하기를 원하는 당신 자신의 클래스를위한 스탠드 - 인을 의미합니다.

귀하의 클래스는 여기 제약의 몇 가지가 필요합니다 : 당신은 당신이 당신의 자신의 필요 어떤 기능을 추가 할 수

class Message { 
    public String name; 
    public String text; 

    public Message(String name, String text) { 
     this.name = name; 
     this.text = text; 
    } 

    // Due to the constraints in the above link, the class must have a 
    // default constructor 
    private Message() {} 

} 

을 다음 : https://www.firebase.com/docs/java-api/javadoc/com/firebase/client/Firebase.html#setValue(java.lang.Object)

Message의 실제 구현은 다음과 같이 보일 수 있습니다 Message 클래스. android.os.Message에 대한 가져 오기도 제거해야합니다.

+0

완전히 얻었습니다! 그렉 고마워! –

관련 문제