我已经尝试了解,但无法看到登录后,我正在存储的数据的方式和位置.
public static final String BASE_URL = "https://xyz.firebaseio.com"; Firebase ref = new Firebase(FirebaseUtils.BASE_URL); ref.authWithPassword("xyz@foo.com","some_password",new Firebase.AuthResultHandler() { @Override public void onAuthenticated(AuthData authData) { Toast.makeText(LoginActivity.this,"Login Successful",Toast.LENGTH_SHORT).show(); startActivity(new Intent(LoginActivity.this,MainActivity.class)); } @Override public void onAuthenticationError(FirebaseError firebaseError) { } }
在这一点上,我已经成功地认证并登陆到“主体”.下一个在MainActivity的onCreate中.我初始化Firebase
firebase = new Firebase(FirebaseUtils.BASE_URL).child("Box"); // adapter below is an ArrayAdapter Feeding ListView firebase.addChildEventListener(new ChildEventListener() { @Override public void onChildAdded(DataSnapshot dataSnapshot,String s) { if (dataSnapshot.getValue(Box.class) instanceof Box) adapter.add(dataSnapshot.getValue(Box.class).getName()); } @Override public void onChildChanged(DataSnapshot dataSnapshot,String s) { adapter.remove(dataSnapshot.getValue(Box.class).getName()); } // other callbacks }
有一个添加按钮,我用来将新记录从Android推送到Firebase.
final Button button = (Button) findViewById(R.id.addButton); button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Box Box = new Box("Box " + System.currentTimeMillis(),"Location " + System.currentTimeMillis()); Firebase fbBox = firebase.child("" + System.currentTimeMillis()); fbBox.setValue(Box); } });
但是上面的代码没有添加任何记录(从ListView中看不到更新),或者至少我可能不知道在哪里查找数据.我在浏览器中打开了Firebase,但我不知道如何检查用户的具体数据?
我修改了我的Firebase规则
{ "rules": { "users": { "$uid": { ".write": "auth != null && auth.uid == $uid",".read": "auth != null && auth.uid == $uid" } } } }
我试图打开诸如https://xyz.firebaseio.com/xxxxxx-xxxxx-xxxx-xxxxx-xxxxxxxxxxxx的URL,但不会显示任何数据.
我想提供一些信息:
>如何在认证后添加用户特定的数据.如果我们对用户的读/写没有任何限制,因为我可以轻松地读/写数据,它不能是无缝的.
>有没有任何Firebase网页视图可视化数据库或查看JSON数据,我可以在哪里查看/修改Android设备上的数据?
解决方法
首先修改Firstbase规则:
{ "rules": { "users": { "$uid": { ".write": "$uid === auth.uid",".read": "$uid === auth.uid" } } } }
然后,在Java代码中:
Firebase rootRef = new Firebase("https://user-account.firebaseio.com/"); // Assuming the user is already logged in. Firebase userRef = rootRef.child("users/" + rootRef.getAuth().getUid()); userRef.child("message1").setValue("Hello World");
最后,数据看起来像这样: