我有一个带有firebase的android应用程序作为数据库。我正在使用Firebase令牌进行身份验证。所以,应用程序会话在每个1小时内到期。所以我想注销并在令牌过期时从家中转到登录活动。如何我在我的应用程序中执行此操作。
public class FragmentHome extends Fragment {
private SearchView search;
View v;
DatabaseReference dataRef;
private FirebaseListAdapter < String > firebaseListAdapter;
ListView mListView;
private TextView text;
ArrayList < String > city = new ArrayList < String > ();
private int i = 0;
private String data, val,
var;
ArrayAdapter < String > adapter;
ProgressBar progressBar;
@Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable final Bundle savedInstanceState) {
v = inflater.inflate(R.layout.activity_fragment_home, container, false);
if (container != null) {
container.removeAllViews();
}
return v;
}
@Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
progressBar = (ProgressBar) v.findViewById(R.id.search_pro);
search = (SearchView) v.findViewById(R.id.search);
search.onActionViewExpanded();
search.setIconified(false);
search.setInputType(InputType.TYPE_NULL);
search.setQueryHint("Search Docter By City Or Department");
mListView = (ListView) v.findViewById(R.id.mList);
mListView.setVisibility(View.INVISIBLE);
dataRef = FirebaseDatabase.getInstance().getReference().child("Docters");
adapter = new ArrayAdapter < String > (getActivity(), android.R.layout.simple_list_item_1, city);
mListView.setAdapter(adapter);
adapter.notifyDataSetChanged();
dataRef.addChildEventListener(new ChildEventListener() {
@Override public void onChildAdded(DataSnapshot dataSnapshot, String s) {
data = dataSnapshot.child("city").getValue(String.class);
val = dataSnapshot.child("department").getValue(String.class);
if (!city.contains(data)) {
city.add(data);
}
if (!city.contains(val)) {
city.add(val);
}
search.setInputType(InputType.TYPE_CLASS_TEXT);
progressBar.setVisibility(View.GONE);
adapter.notifyDataSetChanged();
}
@Override public void onChildChanged(DataSnapshot dataSnapshot, String s) {
data = dataSnapshot.child("city").getValue(String.class);
val = dataSnapshot.child("department").getValue(String.class);
city.add(data);
city.add(val);
city.add(var);
adapter.notifyDataSetChanged();
}
@Override public void onChildRemoved(DataSnapshot dataSnapshot) {}
@Override public void onChildMoved(DataSnapshot dataSnapshot, String s) {}
@Override public void onCancelled(DatabaseError databaseError) {}
});
search.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override public boolean onQueryTextSubmit(String text) {
return false;
}
@Override public boolean onQueryTextChange(String text) {
if (!text.isEmpty()) {
adapter.notifyDataSetChanged();
mListView.setVisibility(View.VISIBLE);
adapter.getFilter().filter(text);
} else {
mListView.setVisibility(View.INVISIBLE);
}
return false;
}
});
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override public void onItemClick(AdapterView < ? > parent, View view, int position, long id) {
String itemRef = (String) adapter.getItem(position);
search.setVisibility(View.INVISIBLE);
mListView.setVisibility(View.INVISIBLE);
FragmentTransaction ft = getChildFragmentManager().beginTransaction();
DocterList fragment = new DocterList();
Bundle item = new Bundle();
item.putString("item", itemRef);
fragment.setArguments(item);
ft.replace(R.id.activity_fragment_home, fragment);
ft.addToBackStack(null);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.commit();
}
});
}