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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Next.js

Next.jsは、Reactを用いたサーバサイドレンダリングなどを行う軽量なフレームワークです。Zeit社が開発しており、nextコマンドでプロジェクトを作成することにより、開発環境整備が整った環境が即時に作成できます。

非同期処理

非同期処理とは一部のコードを別々のスレッドで実行させる手法です。アプリケーションのパフォーマンスを向上させる目的でこの手法を用います。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

1回答

3270閲覧

Firebaseに値が入らない

tomsuma

総合スコア38

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Next.js

Next.jsは、Reactを用いたサーバサイドレンダリングなどを行う軽量なフレームワークです。Zeit社が開発しており、nextコマンドでプロジェクトを作成することにより、開発環境整備が整った環境が即時に作成できます。

非同期処理

非同期処理とは一部のコードを別々のスレッドで実行させる手法です。アプリケーションのパフォーマンスを向上させる目的でこの手法を用います。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2020/10/04 23:08

編集2020/10/05 00:10

forebaseをつかいデータを入れようとしたらこのようなエラーが出ます
エラーなく値を入れるにはどうしたら良いのでしょうか

Error writing document: FirebaseError: Function CollectionReference.doc() requires its first argument to be of type non-empty string, but it was: a custom Object object
import React, { useState } from 'react' import { db, firebase } from '../../firebase/index' import TextInput from '../../templates/UIkit/TextInput' import PrimaryButton from '../../templates/UIkit/PrimaryButton' const CreateHandson = () => { const [title, setTitle] = useState(''), [description, setDescription] = useState(''), [tag, setTags] = useState(''), [url, setUrl] = useState('') const timestamp = firebase.firestore.Timestamp.now() async function makeHandsOn() { try { const handsOn = { title: title, tag: tag, description: description, url: url, } console.log('makeHandsOn', data) const data = await db.collection('handsOn').doc(handsOn).set({ title: title, description: description, tag: tag, url: url, created_at: timestamp, updated_at: timestamp, }) } catch (error) { console.error('Error writing document: ', error) } } return ( <section> <h2 className="u-text__headline u-text-center">商品登録、編集</h2> <div className="c-section-container"> <TextInput fullWidth={true} label={'タイトル'} multiline={false} required={true} onChange={setTitle} rows={1} type={'text'} /> <TextInput fullWidth={true} label={'説明'} multiline={true} required={true} onChange={setDescription} rows={5} type={'text'} /> <TextInput fullWidth={true} label={'タグ名'} multiline={false} required={true} onChange={setTags} rows={1} type={'text'} /> <TextInput fullWidth={true} label={'URL'} multiline={false} required={true} onChange={setUrl} rows={1} type={'text'} /> <div className="module-spacer--medium" /> <PrimaryButton label={'商品情報を保存'} onClick={makeHandsOn} /> </div> </section> ) } export default CreateHandson
const data = await db.collection('handsOn').doc(handsOn).set({ のdocを消したり const handsOn = { title: title, tag: tag, description: description, url: url, } handsOnの中身 title: '', にしたり title: [], にしたのですが、 docを消すと Error writing document: TypeError: _firebase_index__WEBPACK_IMPORTED_MODULE_3__.db.collection(...).set is not a function それ以外は Error writing document: FirebaseError: Function CollectionReference.doc() requires its first argument to be of type non-empty string, but it was: a custom Object object とのエラーが出ます。

イメージ説明

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

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

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

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

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

Hogeike

2020/10/05 00:13 編集

> このようなエラーが出ます そうですか。としか回答できないです。 最低限何を試して何が分からないかを書きましょう。
guest

回答1

0

const data = await db.collection('handsOn').doc(handsOn).set({ ...

doc()の引数はstringでは?

参考:Cloud Firestore にデータを追加する

投稿2020/10/05 00:07

nekoniki

総合スコア2411

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

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

tomsuma

2020/10/05 00:09

ご回答ありがとうございます .doc('handsOn') にすると Error writing document: FirebaseError: Function DocumentReference.set() called with invalid data. Unsupported field value: a custom SyntheticEvent object (found in field title in document handsOn/handsOn) とのエラーに変わります
nekoniki

2020/10/05 00:11

> .doc('handsOn') firestore側のドキュメント名を指定する必要があります。
tomsuma

2020/10/05 04:31

ご回答ありがとうございます! ドキュメント名がよく分からなかったので .doc('BJ')にしたり.doc("LA")にしたり、このアプリのプロジェクト名を入れてみたりしたのですが、駄目でした。。
nekoniki

2020/10/05 04:33

> ドキュメント名がよく分からなかったので firebaseのfirestore側でドキュメントの定義を行なっていると思います。 その名称そのままを入れれば動作すると思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問