Firestore基于角色的授权

我有一个问题,在这里我想使用角色将用户和管理员分开。

我在下面编写的代码一直运行顺利,但是在该代码中,显示的数据仅在同一屏幕上。

如何在不同页面上返回snapshot.data ['role],例如AdminPage();和UserPage();

      body: StreamBuilder<DocumentSnapshot>(
        stream: Firestore.instance
            .collection('users')
            .document(user.uid)
            .snapshots(),
        builder:
            (BuildContext context, AsyncSnapshot<DocumentSnapshot> snapshot) {
          if (snapshot.hasError) {
            return Text('Error: ${snapshot.hasError}');
          }
          return snapshot.hasData ? checkRole(snapshot.data) : Text('No Data');
        },
      ),
    );
  }
}

Center checkRole(DocumentSnapshot snapshot) {
  if (snapshot.data['role'] == 'admin') {
    return adminPage(snapshot);
  } else {
    return userPage(snapshot);
  }
}

Center adminPage(DocumentSnapshot snapshot) {
  return Center(child: Text(snapshot.data['role'] + ' is here'));
}

Center userPage(DocumentSnapshot snapshot) {
  return Center(child: Text(snapshot.data['role'] + ' PAGE'));
}