我是Firebase的新手。
我正在尝试向我的Firebase数据库添加标题和一些文本。我已将写入和读取规则设置为true
修改
复制将此完全相同的代码粘贴到另一个Android Studio项目并设置新的Firebase项目并在我的手机上运行完全相同的代码。它将数据添加到Firebase数据库。
我不知道我是否应该感到高兴或悲伤。
这是从中发送数据的类:
public class CreateActivity extends AppCompatActivity {
FirebaseDatabase mFirebaseDatabase;
DatabaseReference mDatabaseReference;
EditText titleText;
EditText postText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
setTitle("");
titleText = (EditText) findViewById(R.id.create_title);
postText = (EditText) findViewById(R.id.create_text);
mFirebaseDatabase = FirebaseDatabase.getInstance();
mDatabaseReference = mFirebaseDatabase.getReference().child("PostsText");
Button postButton = (Button) findViewById(R.id.create_button);
postButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(titleText!=null && postText!=null ) {
TextPost textPost = new TextPost(titleText.getText().toString(),postText.getText().toString());
mDatabaseReference.push().setValue(textPost).addOnCompleteListener(new OnCompleteListener<Void>()
{
@Override
public void onComplete(@NonNull Task<Void> task) {
if(task.isSuccessful()){
Toast.makeText(CreateActivity.this,"Yes!",Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(CreateActivity.this,"No!",Toast.LENGTH_SHORT).show();
}
}
});
titleText.setText("");
postText.setText("");
Toast.makeText(CreateActivity.this,"Post uploaded!",Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(CreateActivity.this,"Empty fields!",Toast.LENGTH_SHORT).show();
}
}
});
}
}
这是我正在推送到Firebase数据库中的TextPost类:
public class TextPost {
String title;
String text;
public TextPost() {
}
public TextPost(String title, String text) {
this.title = title;
this.text = text;
}
public String getTitle() {
return title;
}
public String getText() {
return text;
}
}
当我运行CreateActivity并按&#34;发布&#34;时,吐司会弹出说&#34;发布上传&#34;,但我在控制台中的Firebase数据库仍然显示&#34; null&#34 ;。 此外,敬酒说&#34;是的!&#34;或&#34;不!&#34;不会弹出!
我还将google-services.json文件添加到了我的应用文件夹中。
打开CreateActivity后输入我的日志,输入标题和文字,然后点击帖子:
06-27 00:45:09.323 24528-24528/com.android.example.prototype I/ViewRootImpl: finishMotionEvent: handled = true stage=10: View Post IME stage,inputElapseTime=12 eventTime = 648344822 downTime = 648344822 title= com.android.example.prototype/com.android.example.prototype.CreateActivity
06-27 00:45:10.850 24528-24553/com.android.example.prototype W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
06-27 00:45:12.737 24528-24528/com.android.example.prototype I/ViewRootImpl: finishMotionEvent: handled = true stage=10: View Post IME stage,inputElapseTime=13 eventTime = 648348239 downTime = 648348239 title= com.android.example.prototype/com.android.example.prototype.CreateActivity
有人可以帮我解决这个问题吗? 如果您需要更多信息,请与我们联系。
我的build.gradle依赖项是:
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.android.support:design:25.3.1'
compile 'com.android.support:cardview-v7:25.3.1'
compile 'com.android.support:recyclerview-v7:25.3.1'
compile 'com.daprlabs.aaron:swipedeck:2.0.6'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.android.support:support-v4:25.3.1'
compile 'me.grantland:autofittextview:0.2.+'
compile 'com.android.support:multidex:1.0.1'
compile 'com.google.firebase:firebase-auth:10.0.1'
compile 'com.google.firebase:firebase-core:10.0.1'
compile 'com.google.firebase:firebase-database:10.0.1'
testCompile 'junit:junit:4.12'
This is my debug screen after getting a Database reference
调试器完全跳过addOnCompleteListener方法,直接将titleText和postText设置为空白。 任何想法我应该尝试进一步挖掘或任何我应该研究的特定变量?
答案 0 :(得分:0)
我重新启动笔记本电脑,尝试写入Firebase数据库。有效。 不知道怎么做。
感谢您的帮助!