使用此
public class Activity_Message extends AppCompatActivity implements View.OnClickListener {
EditText msg;
String To_Name,To_Id;
String My_Name,My_Id;
Firebase reference1, reference2;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.message_list);
Firebase.setAndroidContext(this);
reference1 = new Firebase("https://chatapp-e1eabdgdfg.firebaseio.com/Message/" + My_Name + "_" + To_Name);
reference2 = new Firebase("https://chatapp-e1eabgfggf.firebaseio.com/Message/" + To_Name + "_" + My_Name);
initViews();
loadData();
}
private void initViews() {
msg = (EditText)findViewById(R.id.msg_edit);
ImageView send = (ImageView)findViewById(R.id.send_btn);
send.setOnClickListener(this);
reference1.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
//get data here
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
//Log.d("fdfddhjChild Changed",dataSnapshot.getValue().toString());
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.send_btn:
String messageText = msg.getText().toString();
if(!messageText.equals("")){
Map<String, String> map = new HashMap<String, String>();
map.put("message", messageText);
map.put("from_id", My_Id);
map.put("to_id", To_Id);
map.put("date_time", currDate);
reference1.push().setValue(map);
reference2.push().setValue(map);
}
msg.setText("");
break;
}
}
}
如果你设置了火力规则正确,我认为它应该工作,因为它是自动创建的中间节点为你。你能分享这个规则吗? – user1431765
我没有改变默认规则。 @ user1431765 –