问题描述
我将Firebase功能从一个Firebase帐户切换到另一个帐户。
我已经重新运行CompletableFuture<String> task1 = CompletableFuture.supplyAsync(Test::method1);
CompletableFuture<String> task2 = CompletableFuture.supplyAsync(Test::method2);
CompletableFuture<String> task3 = CompletableFuture.supplyAsync(Test::method3);
String concat =
Stream.of(task1,task2,task3).map(CompletableFuture::join).collect(Collectors.joining());
System.out.println(concat);
。
我已经将新的服务帐户配置添加到项目中,并将其传递给firebase init
。我已经通过CLI登录了GCP,并且还运行了admin.initializeApp
。
尽管如此,每当我尝试运行firebase login:ci
时,都会遇到错误:
功能部署所需的缺少权限。您必须对服务帐户@ appspot.gserviceaccount.com拥有iam.serviceAccounts.ActAs权限。
知道这是怎么回事吗?
解决方法
这与用于初始化Firebase Admin SDK的服务帐户无关。该错误与您用于通过Firebase CLI登录的Google帐户权限不足有关。它无权部署到Cloud Functions。您应该先退出,然后使用具有权限的帐户(通常是“编辑者”角色)重新登录,或者向要使用的帐户添加适当的权限。
,如果要迁移到新的Firebase项目/帐户,则必须在运行firebase init
之前删除项目的现有.firebaserc和firebase.json文件-这将确保您使用的是更新的项目配置。