Closed
Description
[REQUIRED] Please fill in the following fields:
- Unity editor version: 2019.4.9f1
- Firebase Unity SDK version: 6.15.2
- Source you installed the SDK: Unity Package Manager (.unitypackage or Unity Package Manager)
- Problematic Firebase Component: Cloud Firestore for Firebase (Auth, Database, etc.)
- Other Firebase Components in use: ____ (Auth, Database, etc.)
- Additional SDKs you are using: _____ (Facebook, AdMob, etc.)
- Platform you are using the Unity editor on: Windows 10 (Mac, Windows, or Linux)
- Platform you are targeting: iOS, Android (iOS, Android, and/or desktop)
- Scripting Runtime: IL2CPP (Mono, and/or IL2CPP)
[REQUIRED] Please describe the issue here:
Unity Editor becomes non responsive on play if a Firestore transaction was made in the previous session.
Steps to reproduce:
Have you been able to reproduce this issue with just the Firebase Unity quickstarts (this GitHub project)?
Haven't tried yet.
What's the issue repro rate? (eg 100%, 1/5 etc)
100%
What happened? How can we make the problem occur?
Editor becomes non responsive.
Press play
Run code that makes a transaction
Press stop
Press play
Unity editor is now stuck
Relevant Code:
DocumentReference accountDocumentRef =
_firestoreClient.Db.Document(_documentPath);
DocumentReference profileStateDocRef =
_firestoreClient.Db.Document(
$"{_profileStatesCollection}/{_userId}_{profileStateId}");
bool transactionResult = await _firestoreClient.Db.RunTransactionAsync(async transaction =>
{
DocumentSnapshot snapshot = await transaction.GetSnapshotAsync(accountDocumentRef);
AccountDocument accountDocument = snapshot.ConvertTo<AccountDocument>();
if (accountDocument.ProfileMeta.ContainsKey(slotId.ToString())) return false;
accountDocument.ProfileMeta.Add(slotId.ToString(),
new ProfileStateMetaData(profileStateId, childName, ProfileStateDocument.kCurrentVersion,
_profileStatesCollection));
transaction.Set(accountDocumentRef, accountDocument);
transaction.Set(profileStateDocRef, profileState);
return true;
});
_accountData = await GetAccountData();
if (!transactionResult) return null;
return await GetProfileStateController(profileStateId);*/