Outputted program functions on my computer but not other user's computer

0

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.

I've tried:

  • Giving him all the files that are located in the bin\Release folder
  • Using dependencies nothing comes up
  • Installing VC redistributables
  • Installing a fresh windows install on a virtual machine
  • Checking for a settings file.

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.

Edit:

Event viewer log:

Information:

Fault bucket 2141801032250789995, type 5
Event Name: CLR20r3
Response: Not available
Cab Id: 0

Problem signature:
P1: Empty.exe
P2: 1.0.0.0
P3: 93c944a7
P4: Google.Apis.Auth
P5: 1.40.2.0
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

Error:

Faulting application name: Empty.exe, version: 1.0.0.0, 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: 

Error:

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?

c#
firebase
google-cloud-firestore
visual-studio-2019
asked on Stack Overflow Nov 3, 2019 by Doshorte Dovencio • edited Nov 3, 2019 by Doshorte Dovencio

2 Answers

1

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

Hi *****,

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.

Cheers, Joel

answered on Stack Overflow Nov 6, 2019 by Doshorte Dovencio • edited Nov 6, 2019 by Doshorte Dovencio
1

As is documented here, and is mentioned in the support email, you need to use GOOGLE_APPLICATION_CREDENTIALS.

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.

answered on Stack Overflow Nov 15, 2019 by Jofre

User contributions licensed under CC BY-SA 3.0