<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_followers(self, auth_secret):
 """Get the follower list of a logged-in user. Parameters auth_secret: str The authentication secret of the logged-in user. Returns ------- bool True if the follower list is successfully obtained, False otherwise. result A dict containing the follower list with the key FOLLOWER_LIST_KEY if the follower list is successfully obtained, a dict containing the error string with the key ERROR_KEY otherwise. Note ---- Possible error strings are listed as below: - ERROR_NOT_LOGGED_IN """

        result = {pytwis_constants.ERROR_KEY: None}

        # Check if the user is logged in.
        loggedin, userid = self._is_loggedin(auth_secret)
        if not loggedin:
            result[pytwis_constants.ERROR_KEY] = pytwis_constants.ERROR_NOT_LOGGED_IN
            return (False, result)

        # Get the list of followers' userids.
        follower_zset_key = pytwis_constants.FOLLOWER_KEY_FORMAT.format(userid)
        follower_userids = self._rc.zrange(follower_zset_key, 0, -1)

        if follower_userids is None or not follower_userids:
            result[pytwis_constants.FOLLOWER_LIST_KEY] = []
            return (True, result)

        # Get the list of followers' usernames from their userids.
        with self._rc.pipeline() as pipe:
            pipe.multi()

            for follower_userid in follower_userids:
                follower_userid_profile_key = \
                    pytwis_constants.USER_PROFILE_KEY_FORMAT.format(follower_userid)
                pipe.hget(follower_userid_profile_key, pytwis_constants.USERNAME_KEY)

            result[pytwis_constants.FOLLOWER_LIST_KEY] = pipe.execute()

        return (True, result)