I've created a program that connects to Google firestore and I gave it to my friend. This program is meant to synchronize one or more character sheets together however when my friend tries to run the program nothing appears to happen.
A list of things found in bin\Release
11/03/2019 12:36 AM 79,872 Empty.exe 11/03/2019 12:36 AM 2,528 Empty.exe.config 11/03/2019 12:36 AM 148,992 Empty.pdb 11/03/2019 12:36 AM 253,440 Google.Api.CommonProtos.dll 11/03/2019 12:36 AM 85,684 Google.Api.CommonProtos.pdb 11/03/2019 12:36 AM 67,072 Google.Api.Gax.dll 11/03/2019 12:36 AM 61,440 Google.Api.Gax.Grpc.dll 11/03/2019 12:36 AM 14,716 Google.Api.Gax.Grpc.pdb 11/03/2019 12:36 AM 20,316 Google.Api.Gax.pdb 11/03/2019 12:36 AM 113,664 Google.Apis.Auth.dll 11/03/2019 12:36 AM 29,984 Google.Apis.Auth.pdb 11/03/2019 12:36 AM 5,120 Google.Apis.Auth.PlatformServices.dll 11/03/2019 12:36 AM 67,072 Google.Apis.Core.dll 11/03/2019 12:36 AM 20,100 Google.Apis.Core.pdb 11/03/2019 12:36 AM 72,192 Google.Apis.dll 11/03/2019 12:36 AM 17,516 Google.Apis.pdb 11/03/2019 12:36 AM 4,608 Google.Apis.PlatformServices.dll 11/03/2019 12:36 AM 148,992 Google.Cloud.Firestore.dll 11/03/2019 12:36 AM 46,120 Google.Cloud.Firestore.pdb 11/03/2019 12:36 AM 213,504 Google.Cloud.Firestore.V1.dll 11/03/2019 12:36 AM 69,728 Google.Cloud.Firestore.V1.pdb 11/03/2019 12:36 AM 44,544 Google.LongRunning.dll 11/03/2019 12:36 AM 12,088 Google.LongRunning.pdb 11/03/2019 12:36 AM 332,272 Google.Protobuf.dll 11/03/2019 12:36 AM 120,800 Google.Protobuf.pdb 11/03/2019 12:36 AM 15,344 Grpc.Auth.dll 11/03/2019 12:36 AM 3,632 Grpc.Auth.pdb 11/03/2019 12:36 AM 42,992 Grpc.Core.Api.dll 11/03/2019 12:36 AM 13,708 Grpc.Core.Api.pdb 11/03/2019 12:36 AM 468,464 Grpc.Core.dll 11/03/2019 12:36 AM 53,276 Grpc.Core.pdb 11/03/2019 12:36 AM 4,194,800 grpc_csharp_ext.x64.dll 11/03/2019 12:36 AM 3,170,800 grpc_csharp_ext.x86.dll 11/03/2019 12:36 AM 4,082,080 libgrpc_csharp_ext.x64.dylib 11/03/2019 12:36 AM 22,817,328 libgrpc_csharp_ext.x64.so 11/03/2019 12:36 AM 3,536,148 libgrpc_csharp_ext.x86.dylib 11/03/2019 12:36 AM 18,714,448 libgrpc_csharp_ext.x86.so 11/03/2019 12:36 AM 662,528 Newtonsoft.Json.dll 11/03/2019 12:36 AM 180,624 System.Collections.Immutable.dll 11/03/2019 12:36 AM 252,344 System.Interactive.Async.dll 11/03/2019 12:36 AM 25,232 System.ValueTuple.dll
I am a new c# programmer and this is the first c# program I have made. If I have missed something please point me in the right direction.
Event viewer log:
Fault bucket 2141801032250789995, type 5 Event Name: CLR20r3 Response: Not available Cab Id: 0 Problem signature: P1: Empty.exe P2: 184.108.40.206 P3: 93c944a7 P4: Google.Apis.Auth P5: 220.127.116.11 P6: 80c50d57 P7: 1b9 P8: 17f P9: System.InvalidOperationException P10: Attached files: \\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERA93D.tmp.dmp \\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERA9FA.tmp.WERInternalMetadata.xml \\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERAA0A.tmp.xml \\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERAA08.tmp.csv \\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERAA29.tmp.txt These files may be available here: \\?\C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_Empty.exe_c3557acbf2e4bc5cb517f9badc695114e415ad_a51ad147_6ec24a04-dfa7-427e-9e49-9a8223fcc5ac Analysis symbol: Rechecking for solution: 0 Report Id: 544b0265-25ce-4c40-be06-869499ad7bf2 Report Status: 268435456 Hashed bucket: 1231502c6efec9389db934b0eadf906b Cab Guid: 0
Faulting application name: Empty.exe, version: 18.104.22.168, time stamp: 0x93c944a7 Faulting module name: KERNELBASE.dll, version: 10.0.18362.356, time stamp: 0x8c4198ab Exception code: 0xe0434352 Fault offset: 0x00113522 Faulting process id: 0x179c Faulting application start time: 0x01d592262c2375c7 Faulting application path: C:\Users\Dovenchiko\Desktop\Foo\Empty.exe Faulting module path: C:\Windows\System32\KERNELBASE.dll Report Id: 544b0265-25ce-4c40-be06-869499ad7bf2 Faulting package full name: Faulting package-relative application ID:
Application: Empty.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.InvalidOperationException at Google.Apis.Auth.OAuth2.DefaultCredentialProvider+<CreateDefaultCredentialAsync>d__11.MoveNext() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task) at Google.Api.Gax.Grpc.ChannelPool+<CreateChannelCredentialsUncached>d__6.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Google.Api.Gax.TaskExtensions.WaitWithUnwrappedExceptions(System.Threading.Tasks.Task) at Google.Api.Gax.Grpc.ChannelPool.GetChannel(Google.Api.Gax.Grpc.ServiceEndpoint, System.Collections.Generic.IEnumerable`1<Grpc.Core.ChannelOption>) at Empty.Form1..ctor() at Empty.Program.Main()
It looks like I need to somehow authenticate sessions on other computers due to the
at Google.Apis.Auth.OAuth2.DefaultCredentialProvider+ line. In addition to that the
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task) line worries me because this is a release version.
Anyway if it is an authentication issue how do I go about fixing it?
I reached out to Firebase support to see if I can get any light on the subject. To be able to run a C# application using the firestore library I would need an unimplemented feature. Something that would still allow the program to run and have a login function. Currently, this feature is implemented when creating mobile apps and web apps but not C# apps. However, it seems like it will be added in the future.
Date: Tue, 5 Nov 2019 00:57:52 +0000 (GMT)
From: Firebase Support
To: "MY_EMAIL" < MY_EMAIL>
Subject: RE: Case ******34: Allow a program to run on other computers without an environment variable
Thanks for reaching out!
I'm Joel, and I'll be happy to assist you here.
I'd like to let you know first, that the official C# Admin SDK doesn't support the Realtime Database nor Firestore yet. You can check the support here.
Now, you might be referring to the GOOGLE_APPLICATION_CREDENTIALS environment variable to authenticate your application with Firebase.
Firebase is oriented towards mobile applications mainly and Web applications also have their space. In order to manage different aspects of these applications, the Admin SDK came to light, but it is oriented to work on servers (to be used in admin apps.), and that's why identifying your admin app with Firebase is necessary; to accomplish project management tasks.
You can build web apps or mobile apps to make the most out of Firebase services. But unfortunately, complete support for C# isn't provided yet. The team is already working on this feature request, but for the moment it's ...[not] there yet.
Please let me know if you have more questions.
As is documented here, and is mentioned in the support email, you need to use
Firebase support is talking about the Firebase SDK, but you're using the Google Cloud library, which does support local authentication.
To make it work locally, you need to follow the auth documentation, which I'm assuming you already did.
Your friend, to make it work, will have to do the same steps with their service account, and then you'll have to update the permissions on your Firesotre (according to these docs) to give your friend's service account the right access.
There are additional authentication options, and all are compatible with the Google Cloud libraries, which you're using.
User contributions licensed under CC BY-SA 3.0