Coo*_*kid 5 firebase firebase-tools google-cloud-firestore
我正在尝试将我的模拟器 firestore 数据库与我的网络应用程序连接起来。奇怪的是,我能够使用模拟器身份验证和模拟器存储分别创建用户和上传文件,但是当我尝试将数据推送到 firestore 模拟器时,什么也没有发生,因为模拟器中没有显示任何内容,并且执行时没有任何错误代码。
我可以看到Requests如下内容,但Data模拟器中什么也没有。

任何帮助,将不胜感激。
编辑:添加更多代码片段
import { initializeApp } from "firebase/app";
import { connectAuthEmulator, getAuth } from "firebase/auth";
import { connectFirestoreEmulator, getFirestore } from "firebase/firestore";
import { connectFunctionsEmulator, getFunctions } from "firebase/functions";
import { getAnalytics } from "firebase/analytics";
require("firebase/storage");
import { getStorage, connectStorageEmulator } from "firebase/storage";
// TODO: Add SDKs for Firebase products that you want to use
// https://firebase.google.com/docs/web/setup#available-libraries
const hostname = window.location.hostname;
console.log("hostname: ", hostname);
const app =
hostname === "localhost"
? initializeApp({
apiKey: process.env.REACT_APP_APIKEY,
authDomain: process.env.REACT_APP_AUTHDOMAIN,
projectId: process.env.REACT_APP_PROJECTID,
storageBucket: process.env.REACT_APP_DEMOSTORAGEBUCKET,
messagingSenderId: process.env.REACT_APP_MESSAGINGSENDERID,
appId: process.env.REACT_APP_APPID,
// measurementId: process.env.REACT_APP_MEASUREMENTID,
})
: initializeApp({
apiKey: process.env.REACT_APP_APIKEY,
authDomain: process.env.REACT_APP_AUTHDOMAIN,
projectId: process.env.REACT_APP_PROJECTID,
storageBucket: process.env.REACT_APP_STORAGEBUCKET,
messagingSenderId: process.env.REACT_APP_MESSAGINGSENDERID,
appId: process.env.REACT_APP_APPID,
measurementId: process.env.REACT_APP_MEASUREMENTID,
});
// REACT_APP_DEMOSTORAGEBUCKET
export const auth = getAuth(app);
export const db = getFirestore(app);
export const storage = getStorage(app);
export const functions = getFunctions(app);
export const analytics = () => {
if (hostname === "localhost") {
return;
} else {
return getAnalytics(app);
}
};
if (hostname === "localhost") {
connectAuthEmulator(auth, "http://localhost:9099");
connectFirestoreEmulator(db, "localhost", 8080);
connectStorageEmulator(storage, "localhost", 9199);
connectFunctionsEmulator(functions, "localhost", 5001);
}
Run Code Online (Sandbox Code Playgroud)
用于模拟器的细节与实际环境的细节基本相同,区别只是从 开始firebase emulators:start --project=demo-project。我使用一个实时但不同的存储桶,以便第三方可以访问我的图像。我过去使用过的所有这些设置都有效,例外是最近当我尝试查看 Firestore 数据时。
小智 0
在我们解决您可能遇到的问题之前,请先了解几件事。确保所有提供程序均已配置且取消注释 ( app module) 然后,您需要运行:
$ firebase emulators:start
Run Code Online (Sandbox Code Playgroud)
一旦停止运行模拟器,数据就会消失,因为数据位于本地内存中。 现在,如果您想在重新开始时保留数据,则需要将其导出。因此,当您的模拟器运行时,请执行以下操作:
$ firebase emulators:export my-test-data
Run Code Online (Sandbox Code Playgroud)
这将创建xml包含所有导出数据的文件,因此稍后当我们启动模拟器时我们可以再次使用它。它还将创建my-test-data文件夹。现在,要使用数据运行:
$ firebase emulators:start --import my-test-data
Run Code Online (Sandbox Code Playgroud)
此时,数据应该可用于您的开发环境。现在您应该可以看到您的数据。我希望它有帮助!
| 归档时间: |
|
| 查看次数: |
562 次 |
| 最近记录: |