В документации Преобразование анонимной учетной записи в постоянную. указано 3 шага процесса, однако шаг 2, похоже, нарушает шаг 1.
- When the user signs up, complete the sign-in flow for the user's authentication provider up to, but not including, calling one of the Auth.signInWith methods. For example, get the user's Google ID token, Facebook access token, or email address and password.
- Get an AuthCredential for the new authentication provider:
var credential = firebase.auth.FacebookAuthProvider.credential( response.authResponse.accessToken);- Pass the AuthCredential object to the sign-in user's link method...
Мой вопрос re: шаг 2. response существует только после, вызывающий один из методов Auth.signInWith, который шаг 1 говорит нет делать. Как связать анонимную учетную запись с учетной записью oAuth?

В документации сказано, что на шаге 1 вы должны не входить через Firebase. Шаг 1 говорит о том, что вы должны войти в систему с провайдером (то есть Google, Facebook, Twitter), а затем получить токен провайдера, а затем привязать токен провайдера к существующей анонимной учетной записи Firebase или войдите в Firebase, используя токен провайдера. Важно то, что токен, на который ссылается документация, исходит от поставщика, а не от Firebase.
Вы не указали, на каком языке / платформе вы планируете это сделать, но вот только пример с Dart / Flutter:
GoogleSignInAccount googleUser = await _googleSignIn.signIn();
// Get the provider auth token
GoogleSignInAuthentication googleAuth = await googleUser.authentication;
FirebaseUser user = await _auth.currentUser();
// Check if the user has signed in as anonymous
if (user != null) {
// Use the provider auth token to link the anonymous account
await _auth.linkWithGoogleCredential(
accessToken: googleAuth.accessToken, idToken: googleAuth.idToken);
} else if (user == null || user.email == null) {
user = await _auth.signInWithGoogle(
accessToken: googleAuth.accessToken,
idToken: googleAuth.idToken,
);
}
Я использую SDK для веб / javascript. На мой взгляд, сценарий рабочего процесса: (1) пользователь использует мое приложение с анонимной учетной записью. (2) мое приложение предлагает возможность создать (постоянную) учетную запись.
Это так сбивает с толку .. «Войдите в систему с провайдером» - что именно это?
Если я не неправильно понял, фокус должен гласить: «Анонимный пользователь будет обновлен после успешного разрешения метода
.linkWithPopup(provider)». Это все, что тебе нужно сделать. ... не уверен, о чем говорят существующие шаги, показанные выше.