我是firebase/javascript/html编码的新手,所以我真的不知道我在做什么,但是我正在学习一个关于如何让firebase和WebGL Unity版本一起工作的教程,并且在这里卡住了:
html代码
<script type="module">
// Import the functions you need from the SDKs you need
import { initializeApp } from "https://www.gstatic.com/firebasejs/9.15.0/firebase-app.js";
import { getDatabase } from "https://www.gstatic.com/firebasejs/9.15.0/firebase-database.js";
// Your web app's Firebase configuration
// For Firebase JS SDK v7.20.0 and later, measurementId is optional
const firebaseConfig = {
apiKey: "apikey",
authDomain: "authDomain.firebaseapp.com",
databaseURL: "databaseURL.firebasedatabase.app",
projectId: "projectId",
storageBucket: "storageBucket.appspot.com",
messagingSenderId: "messagingSenderId",
appId: "appId",
measurementId: "G-measurementId"
};
// Initialize Firebase
const app = initializeApp(firebaseConfig);
const db = getDatabase(app);
</script>
第一个月
PostJSON: function(path, value, objectName, callback, fallback) {
var parsedPath = Pointer_stringify(path);
var parsedValue = Pointer_stringify(value);
var parsedObjectName = Pointer_stringify(objectName);
var parsedCallback = Pointer_stringify(callback);
var parsedFallback = Pointer_stringify(fallback);
try {
firebase.database().ref(parsedPath).set(JSON.parse(parsedValue)).then(function(unused) {
unityInstance.Module.SendMessage(parsedObjectName, parsedCallback, "Success: " + parsedValue + " was posted to " + parsedPath);
});
} catch (error) {
unityInstance.Module.SendMessage(parsedObjectName, parsedFallback, JSON.stringify(error, Object.getOwnPropertyNames(error)));
}
}
'
每次我尝试发布一个值时,它都会说:未定义firebase。我做错了什么?
1条答案
按热度按时间ffscu2ro1#
您将Firebase SDK版本8及更早版本的命名空间
firebase.database()
语法与Firebase SDK版本9及更高版本的模块化initializeApp
语法混合在一起,这不起作用。由于您正在初始化模块化SDK,因此您的数据库访问代码也应该使用新的模块化语法:
要了解如何升级代码,请查看migration guide,并将Firebase文档放在手边,因为其中的所有代码示例都有这两种语法的变体,如reading and writing data上的此页面所示。