我有一个Ember.js应用程序,使用Ember-CLI并使用Firebase。当我运行/测试时,我得到的唯一错误是:
错误:请在适配器上设置
firebase
属性。在初始 (http://localhost:4200/assets/vendor.js:99854:15)(......等)
我的application.js适配器代码是以下emberfire安装后的标准:
import Ember from 'ember';
import FirebaseAdapter from 'emberfire/adapters/firebase';
const { inject } = Ember;
export default FirebaseAdapter.extend({
firebase: inject.service(),
});
和我的firebase:URL在environment.js文件中设置。任何人都可以指出我可能出现问题的方向吗?应用程序本身运行良好。我意识到这是一个内置在emberfire的init函数中的错误响应,但这对我没有帮助!我敢肯定,对于初学者来说,它必须是小而明显的,但我仍然处于学习曲线上......
提前致谢。
Ember 1.13.7 - Ember Data 1.13.8 - Firebase 2.3.0 - EmberFire 1.5.0 - jQuery 1.11.3
答案 0 :(得分:2)
我认为在这种情况下,使用needs
属性指定缺少的单元更合适,因为适配器无法注入Firebase服务。
import { moduleFor, test } from 'ember-qunit';
moduleFor('adapter:application', 'Unit | Adapter | application', {
// Specify the other units that are required for this test.
needs: ['service:firebase']
});
// Replace this with your real tests.
test('it exists', function(assert) {
let adapter = this.subject();
assert.ok(adapter);
});
希望这有助于您的测试。
答案 1 :(得分:0)
您必须注入配置,因为firebase服务需要配置。
$("#div1").load(
"http://ppp.gkdsjfgk.com/wp-content/themes/thestory/compare-form-site.php?loanamt=" +
<?php echo $_POST['loanAmt']; ?> + "&occupation=" +
<?php echo $_POST['occupation']; ?> + "&rateType=" +
<?php echo $_POST['rateType']; ?> + "&age=" +
<?php echo $_POST['age']; ?> + "&city=" +
<?php echo $_POST['city']; ?>
);
所以正确的答案是:
export default {
create(application) {
const config = getOwner(application)._lookupFactory('config:environment');
答案 2 :(得分:-1)
我通过修改tests / unit / adapters / application-test.js文件解决了这个问题:
import { moduleFor, test } from 'ember-qunit';
import FirebaseAdapter from 'emberfire/adapters/firebase';
moduleFor('adapter:application', 'Unit | Adapter | application', {
// Specify the other units that are required for this test.
// needs: ['serializer:foo']
});
// Replace this with your real tests.
test('it exists', function(assert) {
var adapter = FirebaseAdapter; //this.subject();
assert.ok(adapter);
});
希望能帮到别人!