用户尝试登录时如何控制用户类型

时间:2018-01-24 08:00:05

标签: android firebase firebase-authentication

我有两种用户类型。销毁应用程序后,我想要两个用户类型的两个活动。使用我的方法,我无法访问当前用户,因为用户未登录

auth = FirebaseAuth.getInstance();

  if (auth.getCurrentUser() != null) {

       if(loginflag.equals("0")){
            startActivity(new Intent(LoginActivity.this, HomeUsers.class));
            finish();
        }
        else if (loginflag.equals("1"))  {
            startActivity(new Intent(LoginActivity.this, HomeEducator.class));
            finish();
           }
        }
    }


private void loginControl() {

    FirebaseUser user = auth.getCurrentUser();
    String id = user.getUid();
    DatabaseReference FirebaseRef = FirebaseDatabase.getInstance().getReference().child("users").child(id);

    FirebaseRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot snapshot) {

            if(snapshot.exists()){
                loginflag = snapshot.child("flag").getValue().toString();
            }
        }
        @Override
        public void onCancelled(DatabaseError databaseError) {
        }
    });
}

2 个答案:

答案 0 :(得分:0)

要解决此问题,您需要在数据库中的每个用户下添加一个名为var的标记。然后,当用户登录时,检查用户是什么类型,以了解需要重定向的活动。逻辑应该如下:

userType

答案 1 :(得分:0)

你能试试吗

 <?php
    class Common_model extends CI_Model {

        function get_entry_by_data($table_name, $single = false, $data = array(), $select = "", $order_by = '', $orderby_field = '', $limit = '', $offset = 0, $group_by = '') {

            if (!empty($select)) {
                $this->db->select($select);
            }

            if (empty($data)) {

                $id = $this->input->post('id');

                if (!$id)
                    return false;

                $data = array('id' => $id);
            }
            if (!empty($group_by)) {

                $this->db->group_by($group_by);
            }


            if (!empty($limit)) {
                $this->db->limit($limit, $offset);
            }

            if (!empty($order_by) && !empty($orderby_field)) {

                $this->db->order_by($orderby_field, $order_by);
            }

            $query = $this->db->get_where($table_name, $data);

            $res = $query->result_array();

            //echo $this->db->last_query();exit;

            if (!empty($res)) {

                if ($single)
                    return $res[0];
                else
                    return $res;
            } else
                return false;
        }


    public function get_entry_by_data_in($table_name, $single = false, $data = array(), $select = "", $order_by = '', $orderby_field = '', $limit = '', $offset = 0, $group_by = '',$in_column='',$in_data=''){



            if (!empty($select)) {
                $this->db->select($select);
            }

            if (empty($data)) {

                $id = $this->input->post('id');

                if (!$id)
                    return false;

                $data = array('id' => $id);
            }
            if (!empty($group_by)) {

                $this->db->group_by($group_by);
            }


            if (!empty($limit)) {
                $this->db->limit($limit, $offset);
            }

            if (!empty($order_by) && !empty($orderby_field)) {

                $this->db->order_by($orderby_field, $order_by);
            }

            if (!empty($in_data) and !empty($in_column)) {
               $this->db->where_in($in_column,$in_data);
            }

            $query = $this->db->get_where($table_name, $data);

            $res = $query->result_array();

            //echo $this->db->last_query();exit;

            if (!empty($res)) {

                if ($single)
                    return $res[0];
                else
                    return $res;
            } else
                return false;

    }
        public function getAllRecords($table, $orderby_field = '', $orderby_val = '', $where_field = '', $where_val = '', $select = '', $limit = '', $limit_val = '') {

            if (!empty($limit)) {
                $offset = (empty($limit_val)) ? '0' : $limit_val;
                $this->db->limit($limit, $offset);
            }
            if (!empty($select)) {

                $this->db->select($select);
            }
            if ($orderby_field)
                $this->db->order_by($orderby_field, $orderby_val);

            if ($where_field)
                $this->db->where($where_field, $where_val);

            $query = $this->db->get($table);

            //return $query->num_rows;
            //echo $this->db->last_query();
            if ($query->num_rows > 0) {
                return $query->result_array();
            }
        }

        function alldata($table) {
            $query = $this->db->get($table);
            return $query->result_array();
        }

        function alldata_count($table, $where) {
            $query = $this->db->get_where($table, $where);
            return $query->num_rows();
        }

        function insert_entry($table, $data) {
            $this->db->insert($table, $data);
            return $this->db->insert_id();
        }



        function update_entry($table_name, $data, $where) {
            return $this->db->update($table_name, $data, $where);
        }

      public function get_data_by_join($table, $table2, $where, $table1_column, $table2_column, $limit = '', $order_column = '', $order_by = 'DESC', $select_columns = '', $is_single_record = false, $group_by = '', $join_by = '', $offset = '') {
            if (!empty($select_columns)) {
                $this->db->select($select_columns);
            } else {
                $this->db->select('*');
            }

            $this->db->from($table);
            $this->db->join($table2, $table . '.' . $table1_column . '=' . $table2 . '.' . $table2_column, $join_by);
            $this->db->where($where);
            if (!empty($limit)) {
                if (!empty($offset)) {
                    $this->db->limit($limit, $offset);
                } else {
                    $this->db->limit($limit);
                }
            }
            if (!empty($order_column)) {
                $this->db->order_by($order_column, $order_by);
            }

            if (!empty($group_by)) {
                $this->db->group_by($group_by);
            }

            $query = $this->db->get();
            if ($query->num_rows() > 0) {

                if ($is_single_record) {
                    $rs = $query->result_array();
                    return $rs[0];
                } else {
                    return $query->result_array();
                }
            } else {
                return false;
            }
        }

        function DeleteRecord($table_name, $where) {
            return $this->db->delete($table_name, $where);
        }

        function managerecord() {
            $count = 1;
            $where = array('channel_id' => 8,
                'field_id_12 !=' => '');
            $this->db->where($where);
            $query = $this->db->get('channel_data');
            $data = $query->result_array();
            foreach ($data as $value) {
                $id = $value['field_id_12'];
                $update = array('telephone' => $value['field_id_53'],
                    'about' => $value['field_id_54'],
                    'license' => $value['field_id_18'],
                    'broker' => $value['field_id_19'],
                    'preferred' => 'yes');
                $this->db->update('members', $update, array('member_id' => $id));
            }
            echo "done1";
        }

        public function get_content_landing_page($table = false, $field = false, $id = false, $id_name = false) {
            $this->db->select($field);
            $this->db->from($table);
            $this->db->where($id_name, $id);
            $query = $this->db->get();
            return $query->result_array();
        }

        public function get_field_landing_page($id = false,$fields=false) {
            $this->db->select($fields);
            $this->db->from('terratino_form_fields_master');
            $this->db->where('id', $id);
            $query = $this->db->get();
            return $query->result_array();
        }

    }


    ?>