Я создал базовое c приложение, которое хранит данные для базы данных реального времени firebase. Но есть проблема с приложением или базой данных firebase, я не знаю. Иногда мое приложение не соединяется с базой данных в реальном времени, и для того, чтобы связать его с базой данных, мне нужно переключить режим «В самолете», а затем отключить его, а затем оно успешно подключается к базе данных.
Я столкнулся с эта проблема только в моих телефонах vivo с android версией 9, а все остальные мои мобильные устройства работают правильно.
Совместное использование ссылки Github моего проекта.
Обмен записью экрана моего приложения, чтобы показать вам реальную проблему
Журналы
D/FA: Connected to remote service
D/FA: Application going to the background
D/WebSocket: ws_5 - timed out on connect
D/WebSocket: ws_5 - closed
D/WebSocket: ws_5 - closing itself
D/Connection: conn_5 - Realtime connection failed
D/Connection: conn_5 - closing realtime connection
D/PersistentConnection: pc 0 - Got on disconnect due to OTHER
D/PersistentConnection: pc 0 - Scheduling connection attempt
D/ConnectionRetryHelper: Scheduling retry in 2264ms
D/PersistentConnection: pc 0 - Trying to fetch auth token
D/PersistentConnection: pc 0 - Successfully fetched token, opening connection
D/Connection: conn_6 - Opening a connection binding to the service failed
binding to the service failed
D/WebSocket: ws_6 - timed out on connect
D/WebSocket: ws_6 - closed
D/WebSocket: ws_6 - closing itself
D/Connection: conn_6 - Realtime connection failed
D/Connection: conn_6 - closing realtime connection
D/PersistentConnection: pc_0 - Got on disconnect due to OTHER
D/PersistentConnection: pc_0 - Scheduling connection attempt
D/ConnectionRetryHelper: Scheduling retry in 4252ms
D/PersistentConnection: pc 0 - Trying to fetch auth token
D/PersistentConnection: pc 0 - Successfully fetched token, opening connection
D/Connection: conn_7 - Opening a connection
D/WebSocket: ws_7 - timed out on connect
D/WebSocket: ws_7 - closed
D/WebSocket: ws_7 - closing itself D/Connection: conn_7 - Realtime connection
failed D/Connection: conn_7 - closing realtime connection nip • ***** *inn.
no- a An+ an A' * Ana tr. ATUPD
JAVA КОД -
public class MainActivity extends AppCompatActivity {
private EditText Fname,Lname;
private Button show,update;
private RecyclerView disp_data;
private DatabaseReference mUser;
private mAdapter mAdapter;
private List<Users> mList = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Fname = (EditText) findViewById(R.id.Fname);
Lname = (EditText) findViewById(R.id.Lname);
show = (Button) findViewById(R.id.show);
update = (Button) findViewById(R.id.update);
disp_data = (RecyclerView) findViewById(R.id.disp_data);
mAdapter = new mAdapter(MainActivity.this,mList);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
disp_data.setLayoutManager(linearLayoutManager);
disp_data.setAdapter(mAdapter);
mUser = FirebaseDatabase.getInstance().getReference().child("Users");
show.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
displayData();
}
});
update.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
updateData();
}
});
}
private void updateData(){
String pushId = FirebaseDatabase.getInstance().getReference().child("Users").push().getKey();
final Map<String, Object> messageMap = new HashMap<String, Object>();
messageMap.put("Fname",Fname.getText().toString());
messageMap.put("Lname", Lname.getText().toString());
assert pushId != null;
mUser.child(pushId).setValue(messageMap).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Toast.makeText(MainActivity.this, "Data updated sucessfully", Toast.LENGTH_SHORT).show();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(MainActivity.this, "Error - "+ e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
private void displayData(){
mUser.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
mList.clear();
for (DataSnapshot snapshot : dataSnapshot.getChildren()){
Users users = snapshot.getValue(Users.class);
mList.add(users);
mAdapter.notifyDataSetChanged();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}}