を使用してWebアプリケーションを構築する
このポストでは、私はどのように我々はreactjsとappwriteでWebアプリケーションを構築することが表示されます.まず最初に何を正確に構築するつもりですかを説明しましょう.
Webアプリケーションの説明
我々は、1つの場所ですべてのご旅行体験を格納できるようになります旅行ジャーナルを構築する予定です、我々はまた、我々のWebアプリでGoogle認証を実装することになりますので、我々のストアのすべてのコンテンツが確実であることを確認します.
appwriteで始まる AppWriteは、使いやすいセットを開発者に提供する自己ホストソリューションであり、コアバックエンドのニーズを管理するために、残りのAPIを統合します.AppWriteの詳細についてはhttps://appwrite.io/をご覧ください. は、ローカルマシンでAppWriteをセットアップするためにinstallation guideに従います. AppWriteをインストールしたら、appwriteコンソールに新しいプロジェクトを開始します. 一度新しいプロジェクトを作成し、ユーザーのオプションに移動し、設定でGoogle Authオプションを有効にします. Google Authを有効にするために、AppIDとAppScreenKeyを設定するドキュメントがあります.
新しい反応プロジェクトの作成
我々のアプリの認証を設定します.新しいファイルappwriteを作成します.これは、下記のようにappwrite SDKを初期化するところです.プロジェクトのUIDと終了点を取得するには、AppWriteコンソールのプロジェクト設定に移動できます. 現在、前方に移動する前に、Google AUTHをAppWriteコンソールで有効にし、プロジェクトでAppWrite SDKを初期化したことを確認してください. では、appwriteで関数loginwithgoogleを定義します.このようなJSファイル
一度定義されたでは、この関数をこのようにしてホームページに呼び出します
現在、ユーザーが首尾よくログインするならば、彼らはダッシュボードページにすべての彼らのポストが見えるようにリダイレクトされます. 前方に移動する前に、24579172に進む前に、ログ出力機能を追加しましょう.このようなJS
AppWriteデータベースからのデータの保存と取得今、我々は正常に我々のアプリでGoogle認証を設定している.AppWriteデータベースにデータを格納する方法を見てみましょう. 私たちは、AppWriteコンソールで投稿と呼ばれる新しいコレクションを作成し、次の規則とパーミッションを設定します.
コレクション規則
我々は、3つのフィールドの日付、場所と経験を日付、場所、さまざまな旅行の経験を格納する定義している.すべての3つのフィールドが必要です.
ラベル
キー
ルール
日付
日付
テキスト
必要
ロケーション
ロケーション
テキスト
必要
経験
経験
テキスト
必要
パーミッション
パーミッションについてもっと知るために、https://appwrite.io/docs/permissionsを参照してください.ここで読み込みアクセス- 書き込みアクセス-
ドキュメントの作成私たちのコレクションのセットアップを完了したら、appwriteでこの関数を定義することで、最初のドキュメントを作成しましょう.jsここでは、既定ではcreateDocument関数のパーミッションを定義していませんので、ドキュメントを作成するには読み取り権限と書き込み権限があります.
現在、ダッシュボードにこの関数を呼び出します.このようにデータを追加するための入力フィールドを定義しています.
ドキュメント取得
今ではデータを正常に保存することができますので、どのようにデータを取得し、ダッシュボードページに表示するかを見てみましょう.このため、AppWriteでこの関数を定義します.js
でこの関数をダッシュボードに呼び出しましょう.JS inorderデータを表示します.
Github Repo -このアプリのソースコードのこのGithubレポを参照してください.
Webアプリケーションの説明
我々は、1つの場所ですべてのご旅行体験を格納できるようになります旅行ジャーナルを構築する予定です、我々はまた、我々のWebアプリでGoogle認証を実装することになりますので、我々のストアのすべてのコンテンツが確実であることを確認します.
appwriteで始まる
新しい反応プロジェクトの作成
npx create-react-app appname
新しい反応アプリを作成します.npm install appwrite
プロジェクトにappwriteを追加するには我々のアプリの認証を設定します.
import { Appwrite } from "appwrite";
var appwrite = new Appwrite();
appwrite
.setEndpoint('') // Set your endpoint
.setProject('') // Your Appwrite Project UID
;
export const api = {
loginWithGoogle: async () => {
try {
await appwrite.account.createOAuth2Session('google', 'http://localhost:3000/dashboard/', 'http://localhost:3000/');
} catch (error) {
throw error;
}
},
}
ここで、2つの終点は、ユーザーが最初の成功と第2の失敗の場合にリダイレクトされるサイト終点を参照します.一度定義された
import { api } from '../api/appwrite'
function Home() {
const loginwithGoogle = async () => {
try {
await api.loginWithGoogle();
} catch (error) {
console.log(error.message);
}
}
}
<button onClick={loginwithGoogle}>Login with Google</button>
userLogout: async () => {
let promise = appwrite.account.deleteSession('current');
promise.then(function (response) {
console.log(response); // Success
}, function (error) {
console.log(error); // Failure
});
},
そして、ダッシュボードにこの関数を呼び出します.このようなJSimport { api } from '../api/appwrite'
function Dashboard(){
const logoutUser = async () => {
try {
await api.userLogout();
} catch (error) {
console.log(error.message);
}
}
}
<button onClick={logoutUser}>Logout</button>
AppWriteデータベースからのデータの保存と取得
コレクション規則
我々は、3つのフィールドの日付、場所と経験を日付、場所、さまざまな旅行の経験を格納する定義している.すべての3つのフィールドが必要です.
ラベル
キー
ルール
日付
日付
テキスト
必要
ロケーション
ロケーション
テキスト
必要
経験
経験
テキスト
必要
パーミッション
パーミッションについてもっと知るために、https://appwrite.io/docs/permissionsを参照してください.ここで
role:member
は、ログインしている誰でも、コレクションへのアクセスを読み書きしたことを暗示します.role:member
role:member
ドキュメントの作成
postData: async (date, location, content) => {
let promise = appwrite.database.createDocument('CollectionId', { "date": date, "location": location, "experience": content });
promise.then(function (response) {
console.log(response); // Success
}, function (error) {
console.log(error); // Failure
});
},
const [date, setdate] = useState('2021/10/20')
const [location, setlocation] = useState('')
const [content, setcontent] = useState('')
const handleSubmit = async () => {
try {
user = await api.getCurrentUser()
await api.postData(date, location, content);
alert("Added successfully")
} catch (error) {
console.log(error.message);
}
}
<input placeholder="Enter date" type="date" value={date} onChange={(e) => setdate(e.target.value)}></input>
<input placeholder="Enter location" type="text" value={location} onChange={(e) => setlocation(e.target.value)}></input>
<textarea placeholder="Enter experience" type="text" value={content} onChange={(e) => setcontent(e.target.value)}></textarea>
<button onClick={handleSubmit}>Add</button>
ドキュメント取得
今ではデータを正常に保存することができますので、どのようにデータを取得し、ダッシュボードページに表示するかを見てみましょう.
getData: async () => {
let promise = appwrite.database.listDocuments('collectionId');
return promise.then(function (response) {
//response.documents is a array
return response.documents
}, function (error) {
console.log(error); // Failure
});
},
const [postItems, setPostItems] = useState([])
useEffect(() => {
const getPostData = async () => {
try {
await api.getData().then((res) => {
console.log(res)
const stateData = []; // make a temporary const to store your state to be set
res.forEach((doc) => {
stateData.push({
"location": doc.location,
"date": doc.date,
"text": doc.experience
});
});
// finally set your state here
setPostItems([...stateData]);
})
} catch (error) {
console.log(error.message);
}
}
getPostData();
console.log(postItems)
}, [])
{postItems.map((element) => {
return (
<p>{element.date}</p>
<p>{element.location}</p>
<p>{element.text}</p>
)
})}
そして、我々は我々のアプリで行われます🎉🎉. 我々は正常にGoogleの認証を実装しており、AppWriteデータベースを使用してアプリケーションを接続し、我々のデータを簡単に取得します.Github Repo -このアプリのソースコードのこのGithubレポを参照してください.
Reference
この問題について(を使用してWebアプリケーションを構築する), 我々は、より多くの情報をここで見つけました https://dev.to/drishtipeshwani/building-a-web-app-with-reactjs-and-appwrite-4cnoテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol