これは、コレクションにデータを追加するために実装したコードです。
import FirebaseKeys from "./config";
import firebase from "firebase";
import "@firebase/firestore";
class Fire {
constructor() {
firebase.initializeApp(FirebaseKeys);
}
addPost = async ({ text, localUri }) => {
const remoteUri = await this.uploadPhotoAsync(localUri);
const desc = text;
return new Promise((res, rej) => {
// console.log("THIS FIRESTORE" + this.firestore);
const dbh = firebase.firestore();
// this.firestore.collection("posts").add({
// text: desc,
// uid: this.uid,
// timestamp: this.timestamp,
// image: remoteUri
// })
dbh
.collection("posts")
.doc("feed")
.set({
text: desc,
uid: this.uid,
timestamp: this.timestamp,
image: remoteUri
})
.then(ref => {
res(ref);
console.log("EVERYTHING IS FINE HERE");
})
.catch(error => {
console.log("ERROR HERE TOO");
rej(error);
});
});
};
uploadPhotoAsync = async uri => {
console.log(this);
const path = "Date.jpg";
return new Promise(async (res, rej) => {
const response = await fetch(uri);
const file = await response.blob();
let upload = firebase
.storage()
.ref(path)
.put(file);
upload.on(
"state_changed",
snapshot => {},
err => {
console.log("ERROR IN PHOTO UPLOAD");
rej(err);
},
async () => {
const url = await upload.snapshot.ref.getDownloadURL();
res(url);
console.log("IMAGE IS UPLOADING FINE");
}
);
});
};
get firestore() {
return firebase.firestore();
}
get uid() {
return (firebase.auth().currentUser || {}).uid;
}
get timestamp() {
return Date.now();
}
}
Fire.shared = new Fire();
export default Fire;
エキスポリアクションネイティブを使用し、データ操作にFirebaseを使用してアプリを構築しています。しかし、コレクションにデータを追加するための関数を使用しているときに、次のようなエラーが表示されます
undefinedはオブジェクトではありません( 'Wu.getRandomValues'を評価しています)
誰か助けて
ここで与えられた答え(ダウングレード)はうまくいきました。私の場合でも、ダウングレードすると、実際のエラーは許可エラー(本番モード)であることがわかりました。
したがって、実際の問題は、このエラーが実際のエラーが何であってもマスクしていることです。うまくいけば、すぐに修正されます。
別の質問からのコメントには解決策があります:同じ問題がありました。 firebaseのバージョンを@ 7.12.0にダウングレードし、再び機能しました。
ここで同じ問題。 Androidの私のエキスポクライアントがGoogle Playによって更新されました。最新バージョンはexpo sdk 37を使用しています。プロジェクトでexpo updateを実行したところ、すべてが再び機能しています。