質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Cloud Firestore

Cloud Firestore は、自動スケーリングと高性能を実現し、アプリケーション開発を簡素化するように構築された NoSQLドキュメントデータベースです。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

Q&A

解決済

2回答

2163閲覧

Xamarin.FormsでFireStoreからデータ取得

EY007

総合スコア2

Cloud Firestore

Cloud Firestore は、自動スケーリングと高性能を実現し、アプリケーション開発を簡素化するように構築された NoSQLドキュメントデータベースです。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

0グッド

0クリップ

投稿2021/08/04 12:34

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
Xamarin.FormsでFireStoreからデータ取得し計算を行うようななシステムを作っています。
Firestoreからデータ取得するコーディングをしているのですが、上手くいきません。

発生している問題・エラーメッセージ

android端末でデバッグしようとすると37行目で以下のエラーが出ます。 >database = FirestoreDb.Create("fir-pachi"); エラー内容: System.InvalidOperationException: 'Error reading credential file from location C:/backupm/patinkoweb/testxamarin2/testxamarin2/fir-pachi-firebase-adminsdk-x5jda-e4b05bc12e.json: Could not find a part of the path "/C:/backupm/patinkoweb/testxamarin2/testxamarin2/fir-pachi-firebase-adminsdk-x5jda-e4b05bc12e.json". Please check the value of the Environment Variable GOOGLE_APPLICATION_CREDENTIALS'

該当のソースコード

``Xamarin.Forms、C#、XAML
ソースコード
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Xamarin.Forms;
using Xamarin.Forms.Xaml;

using System.Windows;
using Google.Cloud.Firestore;
using Google.Cloud.Firestore.V1;

namespace testxamarin2.Pages
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class kihon : ContentPage
{
private bool flg = true;
public FirestoreDb database;
public string accessKeyPath = "C:/backupm/patinkoweb/testxamarin2/testxamarin2/fir-pachi-firebase-adminsdk-x5jda-e4b05bc12e.json";

public kihon() { InitializeComponent(); } private void P_Appearing(object sender, EventArgs e) { if (flg) { flg = false; //MessageBox.Show("ACTIVATED", "TEST"); Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", accessKeyPath); database = FirestoreDb.Create("fir-pachi"); } } private async void Btn_db_Clicked(object sender, EventArgs args) { CollectionReference usersRef = database.Collection("T_BASE_S1"); QuerySnapshot snapshot = await usersRef.GetSnapshotAsync(); List<FirestoreDataAttribute> list = new List<FirestoreDataAttribute>(); foreach (DocumentSnapshot document in snapshot.Documents) { FirestoreDataAttribute data = new FirestoreDataAttribute { //Id = document.Id, //AccessDate = document.GetValue<Timestamp>("AccessDate").ToDateTime(), //IdNumber = document.GetValue<double>("IdNumber"), Name = document.GetValue<string>("KISYU_NAME") }; list.Add(data); } //Debug.WriteLine("ぼたんがクリックされた"); //Application.Current.MainPage = new Kisyu_list(); //Navigation.PushModalAsync(new Kisyu_list()); //Navigation.PushAsync(new Kisyu_list()); var p = new Kisyu_list(); p.Disappearing += P_Disappearing; await this.Navigation.PushAsync(p, true); }
### 試したこと JSONファイルのパスを何度も確認しましたが、原因がよく解りません。 基本画面のソースコードを貼りますので、確認を宜しくお願い致します。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2021/08/04 17:16

Android アプリからは c:/backupm/〜 のような Windows 上のファイルパスにはアクセスできないのでは…。
EY007

2021/08/04 23:54

ご指摘ありがとうございます。 C#+WPFのデスクトップアプリではWindows 上のファイルパスにアクセスできるのですが、androidアプリからとなると、どうやってアクセスしていいか解りません。
guest

回答2

0

ベストアンサー

AndroidでFirestoreを使うなら、google-services.jsonを含めた上で、以下のライブラリをAndroidプロジェクトに追加します。

Xamarin.Firebase.Firestore

これを使って、Androidプロジェクトで呼び出すことになるので、Xamarin.Formsのプロジェクトから使うには、DependencyServiceなどを利用することになります。

私が作ったものですが、Xamarin.Formsプロジェクトから呼び出せるライブラリがありますので、もしよろしければ検討してみてください。

Plugin.CloudFirestore

投稿2021/08/05 08:15

f-miyu

総合スコア1625

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

EY007

2021/08/05 11:29

すみません。 私のスキルではDependencyServiceなどの利用方法がよく解りません。 Plugin.CloudFirestoreのライブラリはどのように呼び出すのでしょうか? お手数をおかけしますが宜しくお願い致します。
guest

0

JSONファイルのパスを変更しましたが、BaseDirectoryがNULLになっており、解決方法が解りません。
Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "google-services.json")

投稿2021/08/05 01:41

EY007

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問