diff --git a/firebase_admin/_auth_utils.py b/firebase_admin/_auth_utils.py index e368342e8..02d32b659 100644 --- a/firebase_admin/_auth_utils.py +++ b/firebase_admin/_auth_utils.py @@ -43,30 +43,32 @@ class PageIterator: def __init__(self, current_page): if not current_page: raise ValueError('Current page must not be None.') + self._current_page = current_page - self._index = 0 + self._iter = None + + def __next__(self): + if self._iter is None: + self._iter = iter(self.items) - def next(self): - if self._index == len(self.items): + try: + return next(self._iter) + except StopIteration: if self._current_page.has_next_page: self._current_page = self._current_page.get_next_page() - self._index = 0 - if self._index < len(self.items): - result = self.items[self._index] - self._index += 1 - return result - raise StopIteration + self._iter = iter(self.items) - @property - def items(self): - raise NotImplementedError + return next(self._iter) - def __next__(self): - return self.next() + raise def __iter__(self): return self + @property + def items(self): + raise NotImplementedError + def get_emulator_host(): emulator_host = os.getenv(EMULATOR_HOST_ENV_VAR, '')